web-dev-qa-db-ja.com

チェックボックスがオン/オフの場合、送信ボタンを有効/無効にしますか?

HTMLフォームの送信ボタンを有効にし、チェックボックスがオフの場合に無効にする方法は?

このコードの何が問題になっていますか?

EnableSubmit = function(val)
{
    var sbmt = document.getElementById("Accept");

    if (val.checked == true)
    {
        sbmt.disabled = false;
    }
    else
    {
        sbmt.disabled = true;
    }
}                       

チェックボックス

<td width="30%">Do you accept Terms of Service agreement?</td>
<td width="10px" style="min-width: 10px"></td>
<td width="70%">
    <input type="checkbox" name="TOS" value="Accept" onClick="EnableSubmit"> I agree to Terms of Service agreement.
</td>
13
HelpNeeder

HTMLを次のように変更します。

<td width="30%">Do you accept Terms of Service agreement?</td>
<td width="10px" style="min-width: 10px"></td>
<td width="70%">
    <input type="checkbox" name="TOS" value="Accept" onClick="EnableSubmit(this)"> I agree to Terms of Service agreement.
</td>

機能しない理由:関数に何も渡していない。実際には、関数名で括弧を使用していないため、関数はまったく呼び出されていません。 this HTMLイベント属性のコンテキストでonclickを渡すと、要素のDOMオブジェクトへの参照を渡し、checkedプロパティにアクセスできるようになります。

14
Paul Bruno

パラメータを含める必要があります:onClick="EnableSubmit()"

 <input type="checkbox" name="TOS" value="Accept" onClick="EnableSubmit()"> I agree to Terms of Service agreement.
3
RyanS

まず、条件がトグルが目的の側に切り替えられているかどうかをチェックします。必要に応じて条件を変更できます。最後のjqueryは、トグルボタンを灰色にすることです。

 if(!$('#togglehk').is(":checked"))
                    {
                        $('#togglehk').click();
                    }
  jQuery('#togglehk').attr("disabled", true);
  jQuery('#togglehk').prop("disabled",true);

  jQuery('#togglehk').next(".slider").css("backgroundcolor","#B3B3B3");
0
shubhranshu