【问题标题】:Enable/Disable submit button if checkbox is checked/unchecked?如果选中/取消选中复选框,则启用/禁用提交按钮?
【发布时间】:2012-04-18 19:03:53
【问题描述】:

如何在我的 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>

【问题讨论】:

标签: javascript html forms validation


【解决方案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>

它不起作用的原因:你没有传递你的函数任何东西。实际上,因为您没有在函数名称中使用括号,所以您根本没有调用该函数。在 onclick HTML 事件属性的上下文中传递 this 意味着您正在传递对元素的 DOM 对象的引用,从而可以访问其 checked 属性。

【讨论】:

  • 您能否重新输入您的问题以包含表单的其余来源(HTML)?以及您可能正在使用的任何其他 JavaScript?
【解决方案2】:

需要包含参数:onClick="EnableSubmit()"

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

【讨论】:

    【解决方案3】:

    首先 if 条件检查是否切换到所需的一侧。条件可以根据需要改变。 最后一个 jquery 是将切换按钮设为灰色。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-07-24
      • 1970-01-01
      • 1970-01-01
      • 2013-08-12
      • 2020-03-20
      • 2015-09-22
      • 2014-05-13
      • 2019-05-23
      相关资源
      最近更新 更多