隐藏和显示的div使用jQuery
问题描述:
我使用C#编程
,请参见下面的代码:隐藏和显示的div使用jQuery
<p><b>
<%=ResourceFile.GetResourceString("c_FreeLiveOnlineProgramInterest")%>
</b> <font color="red">*</font>
<br>
<asp:dropdownlist id="ddl_ProgramInterest" tabIndex="3" Runat="server"></asp:dropdownlist><br>
<asp:requiredfieldvalidator id="reqv_ddl_ProgramInterest" runat="server" Display="Dynamic" ControlToValidate="ddl_ProgramInterest"></asp:requiredfieldvalidator></p>
<div style="DISPLAY: none" id="divOther" runat="server">
<p><b>
<%=ResourceFile.GetResourceString("c_FreeLiveOnlineProgramInterestOther")%>
</b>
<br>
<asp:textbox id="txt_Other" tabIndex="6" Width="155" runat="server"></asp:textbox><br>
<asp:requiredfieldvalidator id="reqv_txt_Other" runat="server" Display="Dynamic" ControlToValidate="txt_Other"></asp:requiredfieldvalidator></p>
</div>
上面可以看到,我有一个下拉菜单“利益的方案”及以上的下拉菜单有两个值“活'和'其他',我想当用户选择其他时,“divOther”将出现或将被隐藏以及requirefieldvalidator'reqv_txt_Other'相同,我在代码隐藏中编写了下面的代码,其工作正常,但在服务器端。
private void ddl_ProgramInterest_SelectedIndexChanged(object sender, System.EventArgs e)
{
if (ddl_ProgramInterest.SelectedValue == ResourceFile.GetResourceString("c_FreeLiveOnlineProgramInterestValue2"))
{
divOther.Style.Add("display","block");
reqv_txt_Other.Enabled = true;
}
else
{
divOther.Style.Add("display","none");
reqv_txt_Other.Enabled = false;
txt_Other.Text="";
}
}
请建议如何使用JQuery!
感谢
答
你可以做到这一点jQuery的是这样的:
<script type="text/javascript">
$(function() {
$("#<%=ddl_ProgramInterest.ClientID%>").change(function() {
var other = $(this).val() === '<%=ResourceFile.GetResourceString("c_FreeLiveOnlineProgramInterestValue2")%>';
$("#divOther").toggle(other);
$("#<%=reqv_txt_Other.ClientID%>").attr("enabled", other);
}).change(); //fire it on load
});
</script>
刚从divOther
删除runat="server"
因为它不再需要。上面的解决方案需要在您的页面上工作,否则服务器标签将无法解析(并且资源字符串必须位于页面中)。
如果你想找到一个(意见在这里)更清洁的方式的元素,给他们一个类,例如给下拉CssClass="interest"
和更改jQuery选择从$("#<%=ddl_ProgramInterest.ClientID%>")
到$(".interest")
,有点清洁:)
谢谢!尼克我只是做了一些修改,它为我工作! – 2010-05-12 12:40:25