asp.net未在复选框中显示已选中和未选中状态

时间:2012-09-19 10:26:15

标签: javascript jquery asp.net checkbox

为什么检查和取消选中不能在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 个答案:

答案 0 :(得分:2)

使用Firebug检查元素的ID。我知道ASP.NET会在CheckBox1的末尾追加一个随机的ID字符串,因此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");
    }

});

});

答案 1 :(得分:1)

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

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

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

有关详细信息,请参阅MSDN上的Control.ClientID

答案 2 :(得分: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");
        }
    });
});

答案 3 :(得分:0)

删除此行并重试

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

并将您的jQuery代码放在脚本Tag中。希望它能起作用。