nav*_*een 1 javascript asp.net jquery
请注意,该场景是ASP.NET Webforms + Master - Content页面,它会弄乱ID.
比方说,我有三个复选框
<asp:CheckBox ID="chkConsultantQuality" runat="server"
CssClass="company"/>
<asp:CheckBox ID="chkConsultantEnvironment" runat="server"
CssClass="company"/>
<asp:CheckBox ID="chkConsultantSafety" runat="server"
CssClass="company"/>
Run Code Online (Sandbox Code Playgroud)
我想div id="CompanyPanel"根据以下条件对每个复选框进行点击事件
我打算使用jQuery,因为我按类名选择.我可以jQuery.each通过检查每个检查标志来在class ='company'上执行此操作.
有更好的想法吗?
有一个:checked(http://api.jquery.com/checked-selector/你可以使用)选择:
<script>
$(document).ready(function() {
$(".company input").click(function() {
var cnt = $(".company input:checked").length;
if( cnt == 0)
{
// none checked
$('#CompanyPanel').hide();
}
else
{
// any checked
$('#CompanyPanel').show();
}
});
});
</script>
Run Code Online (Sandbox Code Playgroud)
您可能希望在这些复选框的容器上添加(或使用)id,以优化选择器速度.
至于asp.net搞乱控件上的客户端ID,你可以使用
$('<% =MyControl.ClientID %>')
Run Code Online (Sandbox Code Playgroud)
您可以click在所有复选框上等待事件,并在那里执行验证.没必要.each().这样,只要选中或取消选中任何复选框,就会进行验证.
$('input.company:checkbox').click(function(){
if ($('input.company:checkbox:checked').length > 0)
{
$('div#CompanyPanel').show();
}
else
{
$('div#CompanyPanel').hide();
}
});
Run Code Online (Sandbox Code Playgroud)
您也可以稍微优化它,并根据您的需要进行更改.