2011-01-13 7 views
4

フォームを送信するためにチェックする必要があるチェックボックスがあります。jqueryで送信ボタンを無効にするにはどうすればよいですか?

したがって、送信ボタンの無効化属性を「無効」に設定しました。次に、チェックボックスをバインドして、このようにして、送信ボタンを有効または無効にしました。動作しません:

$('input[type=checkbox]#confirm').click(function() { 
    if ($(this).is(':checked')) { 
     $('#submitButton').removeAttr('disabled'); 
    } else { 
     $('#submitButton').attr('disabled', 'disabled'); 
    } 
}); 

[送信]ボタンは無効のままです。

HTML:

<form enctype="application/x-www-form-urlencoded" method="post" action="/controller/action"><dl class="zend_form"> 
<dd id="confirm-element"> 
<input type="hidden" name="confirm" value="0"><input type="checkbox" name="confirm" id="confirm" value="1" class="input-checkbox"></dd> 
<dt id="confirm-label"><label for="confirm" class="required">Lorem ipsum.</label></dt> 
<dt id="submitButton-label">&#160;</dt><dd id="submitButton-element"> 
<input type="submit" name="submitButton" id="submitButton" value="Potvrdiť" class="input-submit" disabled="disabled"></dd> 

<input type="hidden" name="csrf_token" value="ed3e9347145a3eb3d58c4c21d813df26" id=""></dl></form> 
+0

[送信]ボタンを無効に設定すると、十分でない場合があります。フォームのデフォルトのsubmitイベントを防ぐことを検討してください(単純な入力テキストボックスでenterを押すとフォームを送信するブラウザもあります)。 – kapa

+0

@bazmegakapaそれは必要ではありません。私は誰かがjavascriptの周りを移動しようとすると、サーバー側で確保している。私は、フォームがチェックボックスの入力がチェックされた後にのみ提出できることを視覚的に見えるようにする必要があります。 –

答えて

1

を試してみてください

$('#confirm').change(function() { 
    $('#submitButton').attr('disabled', !this.checked); 
}); 

accordiあなたの問題を修正する必要があります。

$('#confirm').change(function() { 
    $('#submitButton').button("option", "disabled", !this.checked); 
}); 
+0

それは何らかの理由で動作しません。 –

+0

hmmmそこにタイプを作った。そして、孤独はすでにそれを修正しました。それは動作するはずです... [デモはこちら](http://jsfiddle.net/reigel/TBHyw/) – Reigel

+0

重要な点。私はhttp://jqueryui.com/demos/button/ jquery UIボタンを使用しています。 –

0
$("#submitButton").attr("disabled", true); 
+1

これはどのように私の問題を解決するのですか? –

+0

申し訳ありません。私はあなたの質問を誤解しました。 –

0

あなたはボタンを無効にすることができますが、unbindのボタンからクリックイベント持っているので、あなたはまだボタンのクリックを持っている:

$("#submitButton").attr('disabled', 'disabled').unbind('click'); 
+0

それは私の問題ではありません。私の問題は、送信ボタンが無効のままであることです。 –

+0

無効なボタンをクリックすることはできません。 –

+0

あなたのスクリプトをテストすれば、それはaswel ..を実行しますが、通常のフォーム投稿が必要ですか?ボタンのクリックイベントで.submit()を使用してフォームを投稿しようとします。 –