no message
This commit is contained in:
92
Ruaka/res.js
Normal file
92
Ruaka/res.js
Normal file
@@ -0,0 +1,92 @@
|
||||
document.addEventListener('DOMContentLoaded', function () {
|
||||
// 获取所有的表单
|
||||
const forms = document.querySelectorAll('form');
|
||||
|
||||
forms.forEach(function (form) {
|
||||
// 检查是否包含 normal 属性,若有则跳过
|
||||
if (form.hasAttribute('normal')) {
|
||||
return; // 跳过此表单
|
||||
}
|
||||
|
||||
// 移除之前可能绑定的事件监听器,确保不会重复绑定
|
||||
form.removeEventListener('submit', handleFormSubmit);
|
||||
|
||||
// 绑定新的事件监听器
|
||||
form.addEventListener('submit', handleFormSubmit);
|
||||
});
|
||||
|
||||
function handleFormSubmit(event) {
|
||||
event.preventDefault(); // 阻止默认提交
|
||||
|
||||
const form = event.target;
|
||||
|
||||
// 添加防止重复提交的标志
|
||||
if (form.dataset.isSubmitting === 'true') {
|
||||
return; // 如果已经在提交,则直接返回,防止重复提交
|
||||
}
|
||||
|
||||
form.dataset.isSubmitting = 'true'; // 标记表单为正在提交
|
||||
|
||||
// 显示加载提示
|
||||
rk.tip('Loading...', '<div class="mdui-progress"><div class="mdui-progress-indeterminate"></div></div>', 6000);
|
||||
|
||||
// 获取表单中的提交按钮
|
||||
const submitButton = form.querySelector('button[type="submit"]');
|
||||
|
||||
// 给提交按钮设置禁用状态
|
||||
if (submitButton) {
|
||||
submitButton.disabled = true;
|
||||
}
|
||||
|
||||
// 给id为 rk-form-load 的元素添加 rk-a-show class
|
||||
const loader = document.getElementById('rk-form-load');
|
||||
if (loader) {
|
||||
loader.classList.remove('rk-a-hidden');
|
||||
loader.classList.add('rk-a-show');
|
||||
}
|
||||
|
||||
// 使用 FormData 对象获取表单数据
|
||||
const formData = new FormData(form);
|
||||
|
||||
// 使用 fetch 发起请求
|
||||
fetch(form.action, {
|
||||
method: form.method,
|
||||
body: formData,
|
||||
})
|
||||
.then(response => response.text()) // 获取纯文本响应
|
||||
.then(data => {
|
||||
// 提交成功时的处理
|
||||
rk.tip('Tip', data, 3); // 使用 rk.tip 输出提示
|
||||
|
||||
// 延迟移除加载的 rk-a-show 类并添加 rk-a-hidden 类
|
||||
setTimeout(() => {
|
||||
if (loader) {
|
||||
loader.classList.remove('rk-a-show');
|
||||
loader.classList.add('rk-a-hidden');
|
||||
}
|
||||
// 恢复提交按钮的可点击状态
|
||||
if (submitButton) {
|
||||
submitButton.disabled = false;
|
||||
}
|
||||
form.dataset.isSubmitting = 'false'; // 解除提交锁定
|
||||
}, 500); // 延迟 0.5 秒
|
||||
})
|
||||
.catch(error => {
|
||||
// 处理错误情况
|
||||
rk.tip('错误', '提交出错: ' + error.message, 3); // 使用 rk.tip 输出错误信息
|
||||
|
||||
// 延迟移除加载的 rk-a-show 类并添加 rk-a-hidden 类
|
||||
setTimeout(() => {
|
||||
if (loader) {
|
||||
loader.classList.add('rk-a-hidden');
|
||||
loader.classList.remove('rk-a-show');
|
||||
}
|
||||
// 恢复提交按钮的可点击状态
|
||||
if (submitButton) {
|
||||
submitButton.disabled = false;
|
||||
}
|
||||
form.dataset.isSubmitting = 'false'; // 解除提交锁定
|
||||
}, 500); // 延迟 0.5 秒
|
||||
});
|
||||
}
|
||||
});
|
||||
Reference in New Issue
Block a user