如何从jquery访问ASP.NET下拉框
我有个小问题。如何从jquery访问ASP.NET下拉列表?我试图使用下拉列表的“CssClass”属性来分配CSS类,然后使用该类访问该列表,但后来我发现该类在选择元素时会发生更改,因此我的初始类被一个新类替换。我将该列表的“CssClass”属性设置为“InstrumentDropDown”。当页面第一次加载时,它的class属性被设置为“InstrumentDropDown”,正如我所期望的那样。但当选择一个元素并进行回发时,它会变成类似“InstrumentDropDown sg selected”(单词之间可能有下划线而不是空格) 我也不能使用“ClientID”属性,因为访问该列表的代码部分不在页面内,而是在一个单独的javascript文件中如何从jquery访问ASP.NET下拉框,asp.net,jquery,Asp.net,Jquery,我有个小问题。如何从jquery访问ASP.NET下拉列表?我试图使用下拉列表的“CssClass”属性来分配CSS类,然后使用该类访问该列表,但后来我发现该类在选择元素时会发生更改,因此我的初始类被一个新类替换。我将该列表的“CssClass”属性设置为“InstrumentDropDown”。当页面第一次加载时,它的class属性被设置为“InstrumentDropDown”,正如我所期望的那样。但当选择一个元素并进行回发时,它会变成类似“InstrumentDropDown sg sel
那么我如何访问它呢?我能想到的最简单的方法是将下拉列表用另一个id封装在一个元素中。这样,您就可以像这样引用它,而不用担心ASP.NET ClientID 脚本:
$('#dropDown select');
标记:
<div id="dropDown">
<asp:DropDownList ID="DropDownList1" runat="server">
</asp:DropDownList>
</div>
我能想到的最简单的事情就是用另一个id将下拉列表包装在一个元素中。这样,您就可以像这样引用它,而不用担心ASP.NET客户端id 脚本:
$('#dropDown select');
标记:
<div id="dropDown">
<asp:DropDownList ID="DropDownList1" runat="server">
</asp:DropDownList>
</div>
加载页面时,使用类查找下拉框并将元素的id存储在变量中
$(function() {
var $ddl = $('select.myClass'); // get here
$('.somethingelse').click( function() {
$.get('...',function(data) {
$ddl.html(data); // use here
}
}
});
当页面加载时,使用该类查找下拉框并将元素的id存储在变量中
$(function() {
var $ddl = $('select.myClass'); // get here
$('.somethingelse').click( function() {
$.get('...',function(data) {
$ddl.html(data); // use here
}
}
});
如果页面上只有一个下拉列表,并且您确信这一点,您也可以使用ID找到它,如下所示:
$("[id$=dropDownID]")
例如,这将查找:
如果页面上只有一个下拉列表,并且您确信这一点,您也可以使用ID查找它,如下所示:
$("[id$=dropDownID]")
例如,这将发现:
在CssClass
名称更改的情况下,OnPostback
此选择器将工作
$(document).ready(function(){
$('select.InstrumentDropDown_sg_selected, select.InstrumentDropDown').change(function(){
var yourValue = $(this).val(); //retrieve value
$(this).val('someValue'); //set value
});
});
如果
CssClass
名称更改OnPostback
此选择器将工作
$(document).ready(function(){
$('select.InstrumentDropDown_sg_selected, select.InstrumentDropDown').change(function(){
var yourValue = $(this).val(); //retrieve value
$(this).val('someValue'); //set value
});
});
如果我这样做,那么当第二次触发“click”事件时,“$ddl”是否会包含该类值?如果是这样,为什么?它不是一个局部变量,当函数执行完成时会被销毁吗?$ddl在click处理程序中被捕获。每当执行click处理程序时,它都会使用最初分配给$ddl的值。如果这样做,那么当第二次触发“click”事件时,“$ddl”是否会包含该类值?如果是这样,为什么?它不是一个局部变量,当函数执行完成时会被销毁吗?$ddl在click处理程序中被捕获。每当执行click处理程序时,它都会使用最初分配给$ddl.Yup的值,这肯定会起作用。我也想到了这一点,但我想知道是否还有其他方法,而不必使用额外的“div”来访问列表。我还想知道一般做法。如果您不使用MVC,那么由于命名容器的原因,id选择器将无法工作。在处理Web表单时,应该使用类名而不是id。或者,您可以使用@Nick Craver在下面使用的id选择语法。@xandercoded--注意div不是
runat=server
,因此名称没有损坏。这将在Web表单中起作用,div标记id将保持不变,因为它是纯html(而不是runat=“server”)。是的,这肯定会起作用。我也想到了这一点,但我想知道是否还有其他方法,而不必使用额外的“div”来访问列表。我还想知道一般做法。如果您不使用MVC,那么由于命名容器的原因,id选择器将无法工作。在处理Web表单时,应该使用类名而不是id。或者,您可以使用@Nick Craver在下面使用的id选择语法。@xandercoded--注意div不是runat=server
,因此名称没有损坏。这将在Web表单中工作,div标记id将保持不变,因为它是纯html(而不是runat=“server”)。不,这不是页面中唯一的下拉列表。@Sayem-有多个具有相同ID的?e、 g.在各种用户控件中?不,它不是页面中唯一的下拉列表。@Sayem-有多个具有相同ID的控件?e、 在各种用户控件中?检查asp:dropdownlist是如何呈现的。我的意思是只要看看htmlcheck asp:dropdownlist是如何呈现的。我的意思是看一下html