为什么不是't这个选择器正在工作(Jquery和Asp.net)

Why isn't this selector working (Jquery and Asp.net)

本文关键字:工作 Jquery net Asp 选择器 为什么不      更新时间:2023-09-26

我有一个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为"Technical"的复选框被选中,它永远不会启动,它总是发出"Tech Not checked"的警报。如果ASP复选框(id为aspTech)已被选中,那么检查的正确代码是什么?

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

要么使用jQuery等价物:

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

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

if ($("#Technical")[0].checked) {
}

尝试使用is方法:

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

prop:

$("#Technical").prop('checked') === true

在检查jQuery代码中的服务器端控件时,应该使用控件的ClientID引用该控件。

试试这个:

$(document).ready(function () {
$("#<%=btnChecked.ClientID%>").click(function () {
    alert("Checking");
    if ($("#<%=Technical.ClientID%>").checked == true) {
        alert("Tech Checked");
    }
    else
    {
        alert("Tech Not Checked");
    }
});
})