Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/285.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# ASP.NETC中的JQuery复选框迭代#_C#_Asp.net_Jquery_Iteration - Fatal编程技术网

C# ASP.NETC中的JQuery复选框迭代#

C# ASP.NETC中的JQuery复选框迭代#,c#,asp.net,jquery,iteration,C#,Asp.net,Jquery,Iteration,我得到了下面的代码,如果没有选中任何复选框,则禁用ASP.Net页面上的按钮,如果选中任何复选框,则启用该按钮。当页面加载且未选中任何复选框时,它将禁用该按钮,但从未点击$('.cb')。当我选中其中一个复选框时,更改(setButton)代码以启用该按钮。有人知道可能出了什么问题吗 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-t

我得到了下面的代码,如果没有选中任何复选框,则禁用ASP.Net页面上的按钮,如果选中任何复选框,则启用该按钮。当页面加载且未选中任何复选框时,它将禁用该按钮,但从未点击$('.cb')。当我选中其中一个复选框时,更改(setButton)代码以启用该按钮。有人知道可能出了什么问题吗

<!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>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <asp:CheckBox ID="CheckBox1" runat="server" CssClass="cb" />
        <asp:CheckBox ID="CheckBox2" runat="server" CssClass="cb" />
        <asp:Button ID="Button1" runat="server"  CssClass="button"
        Text="Button" />

</div>
</form>
<script language="jquery" src="js/jquery-1.3.2.js" type="text/javascript"> 
</script>
<script type="text/javascript" >

    $(document).ready(function() {

        function setButton() {
            $('#Button1').attr('disabled', $('.cb:checked').length === 0);
        }

        // run check after changing any of the checkboxes
        $('.cb').change(setButton);

        // initial check
        setButton();

    });

</script>

$(文档).ready(函数(){
函数setButton(){
$('#Button1').attr('disabled',$('cb:checked')。length==0);
}
//更改任何复选框后运行复选框
$('.cb')。更改(设置按钮);
//初步检查
设置按钮();
});

您的问题是将处理程序附加到
change
事件,而不是
click
事件

还有一个问题,asp.net没有将
CssClass
放在呈现的
元素上,而是放在包含的
元素上。这种行为可能特定于我使用的.net framework版本,但您可以检查呈现的HTML以验证jQuery选择器是否准确。

按钮是否有class=“cb”

您是否尝试将alert/console.log语句放入

$('.cb')。单击(函数(){ 警觉‘到这里了’; 收进按钮
});

尝试在调用
setButton
时添加一对括号:

$('.cb').click(function() {setButton()});

另外,您可能还想尝试使用调试代码。

刚刚注意到我单击了,您做了更改。Ken明确指出了这一点。添加了警报,但setButton函数没有被调用,或者工作不正常。这将立即调用该函数并将其返回值设置为事件处理程序。抱歉,我有点太快了。我已编辑以更正错误。虽然这实际上也是OP犯的错误=),但他传递的是函数,而不是调用该函数的结果。您当前编辑的代码和他的代码正在执行相同的操作。您只是在匿名函数中包装对
setButton
的调用
$('.cb').change(setButton)
$('.cb').change(setButton())