Включить/отключить кнопку отправки, если флажок установлен или не установлен?

Как включить кнопку отправки в моей 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>

Ответы

Ответ 1

Измените свой 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 в контексте атрибута события onclick HTML означает, что вы передаете ссылку на объект DOM элемента, предоставляя вам доступ к свойству checked.

Ответ 2

Вам нужно включить параметры: onClick="EnableSubmit()"

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