0

我有一个 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)是否已被选中?

4

3 回答 3

2

$("#Technical")返回一个 jQuery 对象,而不是一个 DOM 元素。该checked属性适用于 DOM 元素,而不适用于 jQuery 对象。

要么使用 jQuery 等价物:

if ($("#Technical").is(":checked")) {
}

或者访问被 jQuery 对象包裹的 DOM 元素:

if ($("#Technical")[0].checked) {
}
于 2013-08-05T09:45:34.063 回答
1

尝试使用is方法:

$("#Technical").is(':checked')

prop

$("#Technical").prop('checked') === true
于 2013-08-05T09:45:11.027 回答
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");
    }
});
})
于 2013-08-05T09:46:54.753 回答