我的网站上有一段JavaScript代码片段。其目的是通过在提交表单后立即清除输入文件来防止双击提交。它曾经工作得很好。今天我测试了它,由于某种原因,Chrome提交了一个空字符串作为文件,但Firefox首先提交文件然后按预期清除它。任何人都可以向我解释这种行为吗?
$('#uploadform').submit(function (e) {
if ($('#file').val().length == 0) {
return false;
}
e.preventDefault();
this.submit();
$('#file').val('');
});
答案 0 :(得分:2)
看起来您遇到了竞争条件,表单提交在值清除后发生。不同浏览器的此行为可能不同。考虑到您在没有ajax的情况下提交表单,一旦页面重新加载,表单将自动清除。要阻止多次提交,您可以禁用提交按钮:
$("#submit-button").attr("disabled","disabled");