繁体   English   中英

如何从jQuery访问ASP.NET下拉框

[英]How to access ASP.NET drop down box from jquery

好吧,我有一个非常小的问题。 如何从jquery访问ASP.NET下拉列表? 我尝试使用下拉列表的“ CssClass”属性分配CSS类,然后使用该类访问该列表,但后来我发现选择元素时该类会发生变化,因此我的初始类被新的替换class。我将该列表的“ CssClass”属性设置为“ InstrumentDropDown”。 第一次加载该页面时,其类属性将设置为“ InstrumentDropDown”,这与我预期的一样。 但是,当选择一个元素并进行回发时,它变成类似于“ InstrumentDropDown sg selected”(可能单词之间有下划线而不是空格)

我也不能使用“ ClientID”属性,因为访问该列表的代码部分不在页面内,而是在单独的javascript文件中。

那么我该如何访问呢?

我能想到的最简单的方法是将下拉列表包装在具有另一个ID的元素内。 这样,您可以像这样引用它,而不必担心ASP.NET ClientID。

脚本:

$('#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
            }
      }
 });

如果页面上只有一个下拉列表,并且您确定要这样做,则还可以使用ends -with选择器($ =)属性按ID通过ID找到它,如下所示:

$("[id$=dropDownID]")

例如,这将找到: <select id="MasterPage$Content$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
   });

});

暂无
暂无

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

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