嗯,我的问题非常小。如何从jquery访问ASP.NET下拉列表?我试图使用下拉列表的“CssClass”属性来分配一个CSS类,然后使用该类访问该列表,但后来我发现当选择一个元素时类会改变,所以我的初始类被一个新的替换class.I将该列表的“CssClass”属性设置为“InstrumentDropDown”。当页面第一次加载时,其class属性设置为“InstrumentDropDown”,就像我预期的那样。但是当选择一个元素并进行回发时,它会变成“InstrumentDropDown sg selected”(可能是单词之间有下划线而不是空格)
我也不能使用“ClientID”属性,因为访问该列表的代码部分不在页面内,而是在单独的javascript文件中。
那我怎么才能访问呢?
答案 0 :(得分:2)
我能想到的最简单的事情就是将你的Drop Down List包含在另一个id的元素中。这样,您可以像这样引用它,而不是担心ASP.NET ClientID。
脚本:
$('#dropDown select');
标记:
<div id="dropDown">
<asp:DropDownList ID="DropDownList1" runat="server">
</asp:DropDownList>
</div>
答案 1 :(得分:2)
当页面加载时,使用该类查找下拉框并将元素的id存储在变量中。
$(function() {
var $ddl = $('select.myClass'); // get here
$('.somethingelse').click( function() {
$.get('...',function(data) {
$ddl.html(data); // use here
}
}
});
答案 2 :(得分:1)
如果页面上只有一个下拉列表,并且您确定了这一点,您也可以使用attribute ends-with selector ($=)通过ID找到它,如下所示:
$("[id$=dropDownID]")
例如,这会找到:<select id="MasterPage$Content$dropDownID">
答案 3 :(得分:1)
如果CssClass
名称更改OnPostback
,则此选择器将有效...
$(document).ready(function(){
$('select.InstrumentDropDown_sg_selected, select.InstrumentDropDown').change(function(){
var yourValue = $(this).val(); //retrieve value
$(this).val('someValue'); //set value
});
});