jquery .submit() + 禁用输入文件

标签 jquery html

我有一个表单,它使用 .change() 和 .submit() 在用户选择照片后立即上传照片。我现在尝试在提交()开始后对输入文件实现禁用,以避免同时多次上传。

HTML:

  <form action="includes/photos.php" id="joinPhotoUploadForm" enctype="multipart/form-data">
    <input type="file" name="file" id="file"><br>
  </form>

JQUERY:

$('input#file').change(function() {
    $('form#joinPhotoUploadForm').submit();
    $('input#file').prop('disabled', true);     // Prevent Multiple Files Uploads
  }
});

问题是在 IE 下,只有在第二次上传开始 .submit() 之前禁用 input#file。

有没有办法防止在 .submit() 开始之前发生禁用情况?

还有其他方法可以实现这一目标吗?我还可以禁用其他东西吗?我可以解除.change()的绑定(bind)吗?注意:禁用稍后启用(ajax返回成功后)。

谢谢

最佳答案

如果文件输入被禁用,您需要防止表单再次提交。第二个 eventListener 将为您执行此操作。

$('input#file').change(function() {
    $('form#joinPhotoUploadForm').submit();
    $('input#file').prop('disabled', true);     // Disable to Prevent Multiple Files Uploads
});

$("#joinPhotoUploadForm").submit(function(e) {
  if ($(this).find("#file").is(":disabled")) {
    e.preventDefault();
  }
});

关于jquery .submit() + 禁用输入文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12435550/

相关文章:

javascript - 如何控制变量提升?

jquery - 循环遍历表中的所有 TH 和 TD 单元格

javascript - HTML,CSS : DataTables header padding behavior

html - Bootstrap 行高 100% 问题

javascript - 绘制圆形 Canvas 和打印 Canvas

jquery - 克隆一个包含 "customized"jQueryUI datePicker 的 div

javascript - 使用 jQuery 或 Underscore.js 获取嵌套对象中字段的值

jquery - 基于 jQuery 中动态添加的类更改点击事件延迟

html - Netbeans - 为所有文件包含 CSS

javascript - HTML,我如何知道 "textbox"的高度?