-2

ボタンの値を「送信」から「読み込み中...」に変更し、コードの処理中にボタンを無効にしようとしています。プロセスが終了すると、ボタンはリセットされます。これは、.attr と .prop を個別に使用するよりもうまく実行できると思います。私のコードを最も効率的な形式に改善するのを手伝ってくれる人はいますか?

HTML

<button class="btn btn-primary" id="button">Submit</button>

.attr とさまざまな書き方についての皆さんの説明のおかげで、「#button」へのアクセスが何度も少なくなるため、これがこの作品を書くのに最も効率的な方法であると感じ始めています。

$('#button').click(function() {
    $(this).text('Loading...').prop('disabled', true);

    //process

    $(this).text('Submit').prop('disabled', false);
});

から

$('#button').click(function() {
    $(this).prop('disabled', true);
    $(this).attr('value', 'Loading...');

    //process

    $(this).attr('value', 'Submit');
    $(this).prop("disabled", false)
});

同意しない場合、またはより良い書き方がある場合はコメントしてください。

4

4 に答える 4

1

.text()または_.html()

$(this).text('Loading...');
$(this).html('Loading...');
于 2013-04-26T09:22:39.537 に答える
1

これは<input>with タイプのボタンではありません。これはボタンであり、HTML5 ボタンでは、値はタグ自体の内部に入ります (例: <button>Value</button>. したがって、値はテキスト自体であるため、jQuery を使用してその値を操作しようattrとしても機能しません。

使用する必要があるのは、jQuery のtext()メソッドです。

これは動作中のjsFiddle です。

そしてコード自体:

$(this).text('Loading...').prop('disabled', true);
于 2013-04-26T09:24:34.853 に答える
0

のように2つを組み合わせることができます

$(this).html("Loading...").prop("disabled", true);
于 2013-04-26T09:31:28.463 に答える
0

これを試して

$('#button').click(function() {
    $(this).prop('disabled', true);
    $(this).text('Loading...');

    //process

    $(this).text('Submit');
    $(this).prop("disabled", false)
});

http://api.jquery.com/textを読む

于 2013-04-26T09:25:36.357 に答える