javascript - Chrome 和 Firefox 中 form.submit() 的不同 JavaScript 行为

标签 javascript jquery google-chrome firefox forms

这段 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/

相关文章:

javascript - Angular 递归 ng-include,同时跟踪递归深度

javascript - Jquery 提交时不循环

html - 在 Firefox 中显示的证明容器,但在 Chrome 中不显示

javascript - 使用自动完成的值填充状态( react )

javascript - AngularJS 依次执行 promise

javascript - 在 onClick (HTML) 中打断线

javascript - 确保至少选中一个复选框

javascript - 需要 jqgrid saverow 相关帮助

javascript - 处理 Javascript 事件的正确方法

javascript - 如何将 Chrome 书签 "date_added"值解析为日期