2

为什么检查和未检查在 asp.net 中不起作用,就像检查的属性没有显示一样?我正在尝试使用 jquery 将检查和未检查的布尔值放入警报中?

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
    <script src="Scripts/jquery-1.8.1.js" type="text/javascript"></script>
    <script src="JScript1.js" type="text/javascript"></script>
    <script type="text/javascript">



    </script>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <asp:CheckBox ID="CheckBox1" runat="server" />
    </div>
    </form>
</body>
</html>





$(document).ready(function () {

    $("#CheckBox1").click(function () {

        if ($(this).is(':checked')) {
           alert("true");

        } else {
            alert("false");
        }

    });
});
4

4 回答 4

2

使用 Firebug 检查元素的 ID。我知道 ASP.NET 会将一个随机 ID 字符串附加到 CheckBox1 的末尾,因此 Jquery 不会选择它。

最好的方法是用标准 HTML 包围它并从父元素调用元素。

<div id="CheckContainer">
    <asp:CheckBox ID="CheckBox1" runat="server" />
</div>

进而

$(document).ready(function () {

$("#CheckContainer input[type='checkbox']").click(function () {

    if ($(this).is(':checked')) {
       alert("true");

    } else {
        alert("false");
    }

});

});

于 2012-09-19T10:34:00.707 回答
1

复选框的客户端 ID不会是CheckBox1.

您需要CheckBox1.ClientID使用它来获取它并在 jQuery 中使用它。

$("#<%:CheckBox1.ClientID%>")

有关详细信息,请参阅Control.ClientIDMSDN。

于 2012-09-19T10:29:43.477 回答
1

因为 Asp.Net 控件具有 runat="server" 属性,所以元素的 id 将附加 ContentPanel .. 所以导向器选择器将不起作用.. 试试这个

所以在这种情况下有效的选择器将是

$("[id$=CheckBox1]")  
$("[id*=CheckBox1]")
$("#<%= CheckBox1.ClientID %>")


$(document).ready(function () {
    $("[id$=CheckBox1]").click(function () {
        if ($(this).is(':checked')) {
           alert("true");
        } else {
            alert("false");
        }
    });
});
于 2012-09-20T23:18:18.630 回答
0

删除此行并重试

<script src="JScript1.js" type="text/javascript"></script>

并将您的 jQuery 代码放在脚本标签中。希望它应该工作。

于 2012-09-19T13:43:35.733 回答