6

私はファイルアップロードシステムを持っています。アップロードボタンがクリックされた後、ファイルはAJAXを介してアップロードされます。ファイルのアップロード中に、[画像の選択]ボタンにあるクリック機能を無効にしたい。現在、これはファイル選択ボタンのクリック機能です。

$(document).ready(function() {
    $("#file-button").click(function() {
        $('#file').trigger('click');
    });
});

これは正常に機能しますが、XmlHttpRequestの進行フェーズでクリック機能を無効にし、サーバーから200の応答を受け取ったときにクリック機能を再度有効にします。私は試しましたが、Chromeでは正常bind()unbind()動作しますが、Firefoxでは、アップロード中にボタンをクリックできません。これは私が望むものであり、サーバーから応答を受け取った後、ボタンは再び有効になりますが、 Firefoxの2つのファイル選択ダイアログウィンドウが同時に開きます。これは上記の関数が原因であり、私は。を使用して関数を再度バインドしますbind()。クリックイベントのコード(機能)を再入力せずにボタンを有効にしてから無効にする方法について誰かが提案を持っていますか?

このようなものが望ましいでしょう:

$('#file-button').disable();
$('#file-button').enable();

on()とを試しましたが、off()どちらも機能しないようです。

4

4 に答える 4

8

解決策-Ericに感謝します

最初のクリック機能を次のように変更しました。

$(document).ready(function() {
    $("#file-button").click(function() {
      if ( $('#file-button').attr('disabled') == "disabled" ) {
        return false;
      }
      else {
          $('#file').trigger('click');
      }
    });
});

そして、ボタンを無効にするために次のように設定しました

$('#file-button').attr('disabled','disabled');

そして、これを再度有効にします。

$('#file-button').removeAttr('disabled');
于 2013-02-22T04:11:11.567 に答える
4

jQuery $ .prop()関数を使用してボタンを無効にします。

$("input[type=submit]").prop('disabled', true);

クリックハンドラーに条件を追加して、ボタンが無効になっているかどうかを確認します。

$("#file-button").click(function() {
  if (!$(this).is(':disabled')) {
    $('#file').trigger('click');
  }
});

後でボタンを再度有効にします。

$("input[type=submit]").prop('disabled', false);

または、関連するフォームがある場合は、クリックの代わりに送信イベントを使用できる場合があります。

$("#whatever-your-form-is").on('submit', function() {
  $('#file').trigger('click');
});
于 2013-02-11T08:50:49.807 に答える
1

AttrjQuery関数を試してください。

$('#file-button').attr('disabled','disabled');
$('#file-button').removeAttr('disabled');

テストされたコード

<script type="text/javascript" src="js/jquery.js"></script>
<script type="text/javascript">

    $(document).ready(function()
    {
        $("#file-button").click(function(e)
        {
            e.preventDefault();
            $(this).attr('disabled','disabled');
            return false;
        });
    });

</script>

<input type="button" id="file-button" value="ClickMe" />
于 2013-02-11T08:33:13.653 に答える
0

ボタンを無効にするには、入力ボタンを参照する必要があります。

以下のようなもの

  $("input[type=submit]").prob('disabled', true);
  $("inpur[type=submit]").prob('disabled', false);
于 2013-02-11T08:35:22.457 に答える