即使选中,复选框也始终返回false

时间:2014-01-14 06:31:33

标签: c# jquery asp.net webforms

ASP.NET 4.51 WebForms,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。我相信我在这里遗漏了一些明显的东西,但它是什么?

3 个答案:

答案 0 :(得分:1)

页面上没有任何ID为checkbox的内容,因此我非常确定您的选择器是错误的。它应该是#chkAgree

答案 1 :(得分:0)

不应该是

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

答案 2 :(得分:0)

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

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

另外,你的选择器是错误的。给出适当的ID供选择。