2009-09-28 105 views
0

有没有办法获得服务器在客户端填充(使用ASP.NET)的选择框的选定值(或文本或索引)?我尝试了$(“#ID”)。val() - 但唯一有效的时间是当我继续到另一个页面,然后返回。即使这样,返回的值也是以前选择的值 - 如果用户更改了选择,它将不会被注册,除非它们离开页面并返回。对我来说很容易,我是新的...如何使用jQuery访问动态构建的选择框的选定值?

更新:尝试使用正常的html选择,同样的问题(只是与填充条目)。让我详细说明我要做的事情:在单独的页面中,我将获得自动完成搜索框的结果。选择框用于过滤器。当然,如果用户选择过滤器,我不想建议不再有效的项目。我正在寻找包含自动完成信息的页面的ProcessRequest方法中的键。

public override void ProcessRequest(HttpContext context) 
    { 
     string respString; 
     string qsKey = "q"; 
     Customer searchCust = Session[Data.Selected_Customer] as Customer; 
     Dictionary<string, string> qsDict = context.Request.QueryString.ToDictionary(qsKey); 

我不应该得到的结果(例如“& ID =富”的最后一行@ context.Request.QueryString?

+0

我是否正确理解这一点 - 您正在JavaScript中创建一个包含选定值的新URL?如果这是正确的,你可以发布创建URL的确切javascript以及定义你的select元素的标记,因为它是由ASP.NET输出的 – 2009-09-28 20:44:35

回答

1

如果你想实际选择的项目本身:

$("#ID option:selected"); 
+0

如果您想要当然值,您还需要添加.text()。 – 2009-09-28 20:18:04

+0

有进展 - 现在网址是“&ID =”(使用.text())而不是“&ID = null” - 任何想法? – lonehunter01 2009-09-28 20:21:35

+0

我只是跑了一个测试,它为我工作得很好。你是否在#中包含元素的id?例如:$(“#myElementId option:selected”)。text(); – DennyFerra 2009-09-28 21:21:24

0

你确定“ID”是真正的ID ?选择框已经一段时间,因为我用asp.net但我记得它与标识符打乱了很多

+0

#ID是填充符,但是当我查看页面时名称和id都是正确的资源。 – lonehunter01 2009-09-28 20:16:10

0

我使用的代码(是低)来操作ASP.NET生成的选择框。在代码中,我获得原始选择框(项目)的值。还要考虑使用.text()函数。

var setValue = function(item){ 
     //if value isn't already selected, postback 
      if(input.value != item.text()) 
       if(select.attr('onchange')) 
        eval(select[0].attributes['onchange'].nodeValue); 

      //set input box value 
      $(input).val(item.text()); 
      $(input).removeClass('empty'); 

      //select original ASP.NET select value (hidden) 
      select.val(item.text()); 

      $(lookup).hide(); 

      //show type if present 
      $('.selectType').show(); 
    }; 

希望这会有所帮助。

相关问题