如何使用jQuery访问动态构建选择框选择值?

时间:2009-09-28 20:05:32

标签: asp.net jquery html

有没有办法获取服务器在客户端中填充(使用ASP.NET)的选择框的选定值(或文本或索引)?我已经尝试了$(“#ID”)。val() - 但唯一有效的时间是我继续浏览另一个页面然后返回。即使这样,返回的值也是先前选择的值 - 如果用户更改了选择,则除非他们离开页面并返回,否则它不会被注册。对我很轻松,我是新来的......

更新:尝试使用常规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);

我不应该得到结果(例如'&amp; ID = foo'在最后一行@ context.Request.QueryString?

3 个答案:

答案 0 :(得分:1)

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

$("#ID option:selected");

答案 1 :(得分:0)

你确定'ID'真的是选择框的id吗?已经有一段时间了,因为我使用的是asp.net,但我记得很多用标识符搞定了

答案 2 :(得分: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();
    };

希望这有帮助。