2017-01-11 7 views
1

ボタンがクリックされてから応答が到着するまでの間、ボタンを無効にする必要があります。私の目標は、応答が到着する前に誰かがボタンを再びクリックした場合にonclick関数が実行されるのを止めることです。attr( 'disabled'、true)とunbind( 'click')の違い

この場合、正しい機能はどれですか。

$('#mybutton').unbind('click'); 
$('#mybutton').attr('disabled', true); 
+3

ユーザーがボタンをクリックすることを許可していません。他の人がボタンからクリックイベントを削除しています。 – guradio

答えて

0

onclickを削除する方が適切です。フィールドを無効にすると、ブラウザがスタイリングを追加したり、フォーム提出時にフォームを追加したりすることはできません。

また、ボタンが無効になっていてもonclickイベントが発生することがあります。

+0

はい、これが気付きました。なぜそれが起こるのですか? – DesirePRG

+0

また、onlclickイベントを削除する方法 – DesirePRG

+0

'unbind( 'click')'は、要素clickイベントを削除(a.k.a' unbind')します。スタイルの変更のようなものを無効にすると考えることができるので、要素の基本的な動作に実際には影響しません。 – Frogger

1
$('#mybutton').unbind('click'); 

unbind()機能は、選択された要素からonClickイベントハンドラを削除します。

このコードは、選択された要素にdisabled属性を設定します。無効化されたボタンはクリックできず、通常は異なるスタイルになっています。

ユーザーがボタンをクリックしないようにする好ましい方法は、無効にすることです。条件を変更してクリック可能にしたい場合は、この属性を削除して、onClickイベントを再度アタッチする必要はありません。

$(".myButton").prop("disabled", true); 
$(".myCheckbox").click(function() { 
    $(".myButton").prop("disabled", false); 
}); 
2

無効]ボタンは、ユーザーがまだ上でクリックすることができるよう優れたユーザーエクスペリエンスを提供できないだけonclickイベントを削除し、より良いユーザーエクスペリエンスのために必要があります(必要に応じてボタンのテキストは、異なるスタイルに合わせて変更することができます)、する必要がありますインパクトのないボタンです。必ずしも従う必要はありませんが、アプローチになる可能性があります。onclick(余分な注意を払ってください)を外し、ボタンを無効にしてください。

関連する問題