复选框“错误:无法获取属性'已检查'的值:对象为空或未定义”

时间:2013-01-03 23:35:39

标签: javascript asp.net checkbox

我正在尝试解决是否选中了复选框。这似乎很直接。

<script type="text/Javascript">
function ValidateReqNum() {

        var zCheckBox = document.getElementById('chkAllJobs');

        if (zCheckBox.checked)
            alert("true");

        if (!zCheckBox.checked)
            alert("false");

        return true;
    }
</script>

和复选框:

 <asp:CheckBox ID="chkAllJobs" runat="server" Text="All Jobs" />

来自:

<asp:Button ID="btnPrintReport" runat="server" Text="Run Report" 
  OnClientClick="return ValidateReqNum();" OnClick="CreatePDFJobReport" />

我已经尝试了几十种不同的方式,并且不断回来

Error: Unable to get value of the property 'checked': object is null or undefined

我在同一个aspx页面中的其他元素报告就好了。我可以从我的c#代码中调用chkAllJobs,我可以解决是否从c#中检查它。

2 个答案:

答案 0 :(得分:3)

如果您使用母版页,则客户端的子页面的控件ID将与其服务器ID不同。因此,请尝试使用其客户端ID作为;

,而不是使用服务器控件名称
var zCheckBox = document.getElementById('<%= chkAllJobs.ClientID %>');

function ValidateReqNum() {
   alert(zCheckBox.checked);
}

答案 1 :(得分:1)

以下是复选框工作原理的示例。如果您有以下复选框:

 <input id="Checkbox" type="checkbox" name="mycheckbox" value="5"/>

然后您可以使用表单集合

获取值
label_Result.text = Request.Form["mycheckbox"]; 

因此,只有选中该复选框,才能获得值5.