我有一个asp.net应用程序。在Default.aspx文件中,我有这段代码。
<asp:Content ContentPlaceHolderID="PlaceHolderMain" runat="server">
<div id="chrome_ctrl_placeholder"></div>
<div>
<asp:CheckBox ID ="aspTech" runat="server" /><br />
<asp:TextBox ID="txtText" runat="server"></asp:TextBox><br />
<input type="checkbox" name="checkBox" runat="server" value="Technical" id="Technical" /> Technical<br />
<input type="checkbox" name="checkBox" runat="server" value="Commercial" id="Commercial"/> Commercial<br />
<input type="checkbox" name="checkBox" runat="server" value="HR" id="HR"/> HR <br />
<%--<li><input type="button" runat="server" value="Save" id="btnSave" /></li>--%>
<button id="btnSave" >Save</button>
<button id="btnChecked" >Checked</button>
<button id="btnText">Text</button>
</div>
在App.js文件中我有这段代码。
$(document).ready(function () {
$("#btnChecked").click(function () {
alert("Checking");
if ($("#Technical").checked == true) {
alert("Tech Checked");
}
else
{
alert("Tech Not Checked");
}
});
})
还有一些代码,但它不相关。
当我运行代码时,它构建得很好,当我点击btnChecked按钮时它会提示“正在检查”,但是如果选中了ID为“技术”的复选框,则它永远不会启动,它始终会提示“未检查技术” 。那么正确的代码是什么来检查是否已经检查了ASP复选框(带有id aspTech)?
答案 0 :(得分:2)
$("#Technical")
返回一个jQuery对象,而不是DOM元素。 checked
属性适用于DOM元素,而不适用于jQuery对象。
使用jQuery等价物:
if ($("#Technical").is(":checked")) {
}
或者访问jQuery对象包装的DOM元素:
if ($("#Technical")[0].checked) {
}
答案 1 :(得分:1)
答案 2 :(得分:1)
当您在jQuery代码中检查服务器端控件时,应该使用它ClientID
来引用控件。
试试这个:
$(document).ready(function () {
$("#<%=btnChecked.ClientID%>").click(function () {
alert("Checking");
if ($("#<%=Technical.ClientID%>").checked == true) {
alert("Tech Checked");
}
else
{
alert("Tech Not Checked");
}
});
})