【问题标题】:How do you access a dynamically built select box's selected value with jQuery?如何使用 jQuery 访问动态构建的选择框的选定值?
【发布时间】:2009-09-28 20:05:32
【问题描述】:

有没有办法在客户端中获取服务器填充(使用 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);

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

【问题讨论】:

  • 我是否理解正确 - 您正在使用 javascript 创建一个包含所选值的新 URL?如果这是正确的,您能否发布创建 URL 的确切 javascript 以及定义您的选择元素的标记,因为它是由 ASP.NET 输出的

标签: asp.net jquery html


【解决方案1】:

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

$("#ID option:selected");

【讨论】:

  • 如果你想要当然的价值,你还需要添加.text()。
  • 取得了进展——现在网址是“&ID=”(使用 .text())而不是“&ID=null”——有什么想法吗?
  • 我刚刚进行了测试,它对我来说效果很好。您是否在元素的 id 中包含 # ?示例:$("#myElementId option:selected").text();
【解决方案2】:

你确定 'ID' 真的是选择框的 id 吗?自从我使用 asp.net 以来已经有一段时间了,但我记得它与标识符混淆了很多

【讨论】:

  • #ID 是一个填充符,但是当我查看页面源时,name 和 id 都是正确的。
【解决方案3】:

我使用代码(如下)来操作 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();
    };

希望这会有所帮助。

【讨论】:

    猜你喜欢
    • 2011-05-04
    • 2019-01-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多