javascript - 提交后如何延迟刷新AJAX表单?
问题描述
我有一个要提交的 Ajax,但在提交后延迟了 4 秒。(因为我有 PHP 文件需要时间来计算)。
如果您告诉我如何放置加载栏以及确切的位置,那将是完美的。我想它必须在 function (msg) 之后。
我试图延迟setTimeout(cbutton, 4000);
,但没有任何反应..
var barray = [];
function cbutton() {
$('input:radio[name="cheking"]:checked').val();
var varies = $("#fromdate").val();
var varies2 = $("#todate").val();
if (varies == "" || varies2 == "") {
alert("Please fill in all 2 fields first and then submit again");
} else {
barray.push(varies + "~" + varies2);
$.ajax({
type: "POST",
url: $('input:radio[name="cheking"]:checked').val(),
data: {
fromdate: varies,
todate: varies2
}
}).done(function(msg) {
setTimeout(cbutton, 4000);
});
}
}
解决方案
您在这里调用递归,当 ajax 返回成功时,cbutton 正在调用自身。
你需要这样的东西
var barray = [];
function cbutton() {
$('input:radio[name="cheking"]:checked').val();
var varies = $("#fromdate").val();
var varies2 = $("#todate").val();
if (varies == "" || varies2 == "") {
alert("Please fill in all 2 fields first and then submit again");
} else {
barray.push(varies + "~" + varies2);
$.ajax({
type: "POST",
url: $('input:radio[name="cheking"]:checked').val(),
data: { fromdate: varies, todate: varies2 }
}).done(function (msg) {
setTimeout(clearForm(), 4000);
});
}
}
clearForm = () => {
$('form.input').forEach(i, input) => { $(input).val('') });
}
推荐阅读
- r - Roxygen 链接到“[”方法
- scala - 希望根据预定义的字符串数组过滤嵌套结构
- php - SOAP 结果返回负数,但 IF ELSE 无法识别
- google-sheets - 如何在 Google 表格上的另一个过滤器功能中嵌套过滤器功能
- javascript - 如何使用反应在锚链接上设置活动类
- html - 为什么当我单击导航栏转到其他页面时导航栏会移动?
- amazon-web-services - 为 AWS EC2 实例使用来自 SiteGround 的 SSL 证书
- python - 图表 dfs 相关代码几乎通过了所有测试用例,少数失败
- javascript - 从 JavaScript 中选定键之前的键中获取值
- kotlin - 将没有时区的日期解析为本地时区