我有一个简单的jquery函数,用于显示/隐藏一些div。当我使用常规的html下拉列表时,该函数可以工作,但是在使用ASP控件时却没有,我需要它来使用ASP控件,因为我需要在代码隐藏中对它执行一些操作。
DropDown列出代码:
<asp:DropDownList ID="SelectAccount" runat="server">
<asp:ListItem Value="Social_Worker">Social Worker</asp:ListItem>
<asp:ListItem>Sponsor</asp:ListItem>
</asp:DropDownList>
<select name="" id="SelectAccount1" onclick="return SelectAccount_onclick()">
<option value="sponsor">Sponsor</option>
<option value="social_worker">Social Worker</option>
</select>
jquery代码:
$(document).ready(function () {
var det = $("#SponsorDetails");
var all = $("#AllDetails");
$(all).hide();
$(det).hide();
$("#SelectAccount").change(function () {
//hide social worker and sponsor stuff
var value = $("#SelectAccount option:selected").val();
if (value == "social_worker") {
//show social worker stuff
$("#AllDetails").show("slow");
$("#SponsorDetails").hide("slow");
} else {
//show sponsor stuff
$("#AllDetails").show("slow");
$("#SponsorDetails").show("slow");
}
});
});
为什么同一个jquery不能与ASP控件一起使用?
答案 0 :(得分:1)
这可能是因为asp控件的ID是服务器端id,而普通控件的id是客户端,并且它们并不总是匹配,特别是如果它们是嵌套的或在母版页中。
要完成这项工作,你可以修改你的脚本,如果你的脚本在页面中,在服务器端是这样的:
$("#<%=SelectAccount.ClientID %>").change(function () { ... }
答案 1 :(得分:1)
$("#AllDetails").show("slow"); // is this could be hide?
$("#SponsorDetails").show("slow");
然后尝试#&lt;%= SelectAccount.ClientID%&gt;而不是#SelectAccount