繁体   English   中英

如何使用jquery设置aspnet下拉列表的选定值

[英]How can I use jquery to set the selected value of aspnet drop down list

我有一个带有asp下拉列表的ac#Web用户控件。 我想使用jquery或类似工具根据网站的网址设置所选值。

<asp:DropDownList ID="LangSelect" runat="server" AutoPostBack="True" OnSelectedIndexChanged="LangSelect_SelectedIndexChanged" >
    <asp:ListItem Text="English" Value="English"> English</asp:ListItem>
    <asp:ListItem Text="Français" Value="Français"></asp:ListItem>
    <asp:ListItem Text="Español" Value="Español"></asp:ListItem>
    <asp:ListItem Text="Deutsch" Value="Deutsch"></asp:ListItem>
</asp:DropDownList>

我已经试过了:

<script>
    if (window.location.href.indexOf('de') > 0) {
        $("#LangSelect").val('Deutsch');
    }
</script>

但是,它给出了一个错误:

未捕获的TypeError:无法读取null的属性“ val”

使用准备就绪的文档来确保已加载DOM,并使用LangSelect.ClientID来获取ASP.NET生成的HTML标记的LangSelect ID。

$(document).ready(function () {
    if (window.location.href.indexOf('de') > 0) {
        $('#<%= LangSelect.ClientID %>').val('Deutsch');
    }
});

问题是您的选择器,首先,您一开始就缺少#来表示它是一个ID,但是即使如此,您的元素仍设置为runat="server" ,当页面被放置时,它将更改html元素的实际ID。渲染。

为此,您可以添加ClientIDMode="Static"来锁定ID的元素,或者将选择器更改为$([id$=LangSelect]) ,我更喜欢使用ClientIDMode

$(document).ready(function(){如果(window.location.href.indexOf('de')> 0){$('<%= LangSelect.ClientID%>')。find('option [value = 'Deutsch']')。prop('selected',true);

}

});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM