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>

JQUERY:

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

キャッチはIEの下にあり、2回目のアップロード以降に.submit()が開始される前に、input#fileのみが無効になります。

.submit()が開始されるまで障害者が発生しないようにする方法はありますか?

これを達成する別の方法はありますか?他に無効にできるものはありますか?.change()のバインドを解除できますか?注:無効化は後で有効になります(ajaxが正常に戻った後)。

ありがとうございました

4

2 に答える 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 に答える