这段 JavaScript 片段在我的网站上有一段时间了。其目的是通过在提交表单后立即清除输入文件来防止双击提交。它曾经工作正常。今天我测试了它,出于某种原因,Chrome 将一个空字符串作为文件提交,但 Firefox 按预期先提交文件,然后再清除它。任何人都可以向我解释这种行为吗?
$('#uploadform').submit(function (e) {
if ($('#file').val().length == 0) {
return false;
}
e.preventDefault();
this.submit();
$('#file').val('');
});
最佳答案
您似乎遇到了竞争条件,表单提交是在值被清除之后发生的。此行为可能因浏览器而异。考虑到您在没有使用 ajax 的情况下提交表单,一旦页面重新加载,表单将自动清除。为防止多次提交,您可以禁用提交按钮:
$("#submit-button").attr("disabled","disabled");
关于javascript - Chrome 和 Firefox 中 form.submit() 的不同 JavaScript 行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25977978/