【问题标题】:How to select default value in drop down list using JQuery如何使用 JQuery 在下拉列表中选择默认值
【发布时间】:2011-02-12 05:27:54
【问题描述】:

我想在下拉列表中选择“阿尔及利亚”作为默认选定值。我正在使用 JSON 数据格式的处理程序 (LoadCountryList.ashx) 从数据库中获取国家/地区列表,并使用 Jquery 的 $.getJSON 程序将其绑定到 aspx 页面上的下拉列表下面给出

function AddOptions(objSelect)
{
    var URL ="~/LoadCountryList.ashx";
    $.getJSON(URL,function(countries){
        $.each(countries,function(){
            var vCountry = this['Country'];
            $(objSelect).append($("<option></option>").val(this['ID']).html(vCountry));
        });
    });
}

最后我尝试设置它的默认值“阿尔及利亚”。

$(objSelect).find("option[text='Algeria']").attr("selected","selected"); 
OR
$(objSelect).find("option[value='3']").attr("selected","selected");

但它不起作用。有没有人建议我怎么做。

更新:

我还想显示像 Loading... 这样的等待消息,直到它从数据库中获取完整的国家/地区列表。

【问题讨论】:

  • 你不能在 .each 循环中这样做

标签: jquery asp.net json drop-down-menu


【解决方案1】:

要按值执行,您可以使用val()(docs) 方法。

$(objSelect).val('3');

通过文本内容,最安全的方法是使用filter()(docs)方法。

$(objSelect).find('option').filter(function() {
    return this.text === 'Algeria';
}).attr('selected','selected');

编辑:确保您在内部getJSON() 调用进行回调。

【讨论】:

  • 谢谢帕特里克,它的工作原理就像魅力一样。实际上我是在 getJSON() 函数之外做这项工作的,这就是它不起作用的原因。非常感谢。
  • 还有一件事我想显示等待消息,例如加载中...直到它从数据库中获得完整的国家/地区列表。你能告诉我我该怎么做。
  • @Sukhi:当然。只需决定消息应该去哪里,然后在 getJSON 请求之前执行 $('#myContainer').text('loading...') 并在 getJSON 回调内执行 $('#myContainer').text('')
【解决方案2】:
$(objSelect).val("Algeria");

应该这样做。

【讨论】:

    【解决方案3】:

    这应该有效:

    $(objSelect).val("3");
    

    【讨论】:

      【解决方案4】:

      试试这个:-

      $(objSelect).combobox("destroy");     
      $(objSelect).val("Algeria");
      $(objSelect).combobox();
      

      【讨论】:

        【解决方案5】:

        你也可以试试这个

        $(objSelect).val('1');

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2018-07-19
          • 1970-01-01
          相关资源
          最近更新 更多