[英]How can I toggle a panel's visibility using a CheckBox?
我有一个<asp:CheckBox>
,我需要对其应用JavaScript调用。 如果选中CheckBox
则JavaScript函数应将<asp:Panel>
的可见性设置为true。 如果未选中CheckBox
,则面板的可见性应为false。
我无法使用<asp:CheckBox>
和正常的input:type = checkbox
来访问它的JavaScript函数。 但是我需要它成为<asp:CheckBox>
!
如果我理解正确,我会亲自使用jquery,那么您可以执行以下操作
$("#yourCheckBoxId").change(function(){
if($(this).attr('checked')){
$(".yourDivClass").show();
}
});
假设您的CheckBox
具有runat="server"
属性,则需要执行以下操作:
$("<%= MyCheckBox.ClientID %>").change(function () {
$("<%= MyPanel.ClientID %>").toggle();
});
上面的代码假定您的CheckBox
和Panel
始终具有相同的状态。 也就是说, checked
CheckBox
等于可见的Panel
。 如果您需要修改此代码(更改Panel
可见的条件等),并且想要引用CheckBox
的当前checked
状态,只需在change()
函数中执行以下操作:
var checked = $(this).prop("checked");
注意:为了将来的兼容性,使用prop()
函数代替attr()
。 此处的区别很细微,但是attr()
将在CheckBox
首次加载到页面上时返回CheckBox
的状态。 prop()
将返回CheckBox
的当前状态 。
function toggle_panel(chkbox)
{
var panel=document.getElementById('<%=panle1.ClientID %>');
chkbox.checked ? panel.style.display='inline':panel.style.display='none';
}
只需调用javascript函数,就可以使用style属性将其从javascript中访问为一个asp.net控件,因为如果使用Visible =“ false”,则javascript将返回undefined。
<asp:CheckBox ID="chkboxPanel" runat="server" onclick="toggle_panel(this);" Text="Show" />
<br />
<br />
<asp:Panel ID="panle1" runat="server" Style="display: none">
Iam Text Inside the Panel
</asp:Panel>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.