1

我有一个表单,一旦用户选择了一张照片,它就使用 .change() 和 .submit() 上传照片。在 submit() 开始避免同时多次上传之后,我现在尝试在输入文件上实现禁用。

HTML:

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

查询:

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

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

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

还有另一种方法可以实现这一目标吗?还有什么我可以禁用的?我可以取消绑定 .change() 吗?注意:禁用稍后启用(在ajax返回成功后)。

谢谢你

4

2 回答 2

2

如果文件输入被禁用,您需要阻止表单再次提交。第二个 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();
  }
});
于 2012-09-15T07:46:45.247 回答
1

我喜欢这样做:$('#myform').trigger( 'reset' );

于 2015-05-01T05:56:45.993 回答