[英]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.