【问题标题】:Checkbox is always returning false even when checked即使选中,复选框也总是返回 false
【发布时间】:2014-01-14 06:31:33
【问题描述】:

ASP.NET 4.51 网络表单、jQuery 2.0.3

<div class="row">
  <div class="col-xs-3 col-sm-3 col-md-3">
    <div class="checkbox">
      <label>
        <asp:CheckBox ClientIDMode="Static" ID="chkAgree" runat="server" />I Agree
      </label>
    </div>      
    <br/>
    <asp:CustomValidator ID="cfvAgree" runat="server" ValidationGroup="Default" ErrorMessage="Agree to terms and conditions." ClientValidationFunction="CheckTermsAndConditions" CssClass="label label-danger"></asp:CustomValidator>
  </div>

还有java脚本:

<script type="text/javascript">
    function CheckTermsAndConditions(aSource, aArgs) {

        if ($('#checkbox').prop('checked')) {
            console.log("true");
            aArgs.IsValid = true;
        } else {
            console.log("false");
            aArgs.IsValid = false;
        }

    }

</script>

问题是即使复选框被选中,它总是返回 false。我确定我在这里遗漏了一些明显的东西,但它是什么?

【问题讨论】:

  • 看起来你的复选框 id 是错误的。试试$('#chkAgree').prop('checked')
  • @ArunPJohny 你是对的。这里眼睛累了。谢谢。

标签: c# jquery asp.net webforms


【解决方案1】:

您的页面上没有任何 id 为 checkbox 的内容,所以我很确定您的选择器是错误的。应该是#chkAgree

【讨论】:

    【解决方案2】:

    不应该

    if ($('#chkAgree').prop('checked')) 
    

    ?

    【讨论】:

      【解决方案3】:

      如果您的页面中只有一个复选框,您可以尝试:

      if ($("input:checkbox").prop('checked')) 
      

      否则您的选择器是错误的。请提供正确的 ID 以供选择。

      【讨论】:

      • 你的答案会起作用,但我更喜欢定位特定的复选框,以防以后表单发生变化。
      猜你喜欢
      • 2021-08-24
      • 2021-12-26
      • 2019-03-13
      • 1970-01-01
      • 1970-01-01
      • 2020-06-16
      • 2012-02-16
      相关资源
      最近更新 更多