jQuery:HTML DropDown列表有效,但ASP Control DropDown列表没有

时间:2012-02-28 10:52:49

标签: jquery asp.net drop-down-menu

我有一个简单的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控件一起使用?

2 个答案:

答案 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