如何使用 jquery 设置选择下拉列表的“选定选项”

新手上路,请多包涵

我有以下 jquery 函数:

 $.post('GetSalesRepfromCustomer', {
    data: selectedObj.value
}, function (result) {
    alert(result[0]);
    $('select[name^="salesrep"]').val(result[0]);
});

result[0] 是我想在选择框中设置为 selected 项的值。 result[0] 等于 Bruce jones

选择框由数据库查询填充,但呈现的 html 之一是:

 <select id="salesrep" data-theme="a" data-mini="true" name="salesrep">
<option value=""> </option>
<option value="john smith">john smith</option>
<option value="Bruce Jones">Bruce Jones</option>
<option value="Adam Calitz">Adam Calitz</option>
<option>108</option>
</select>

$('select[name^="salesrep"]').val(result[0]); 不填充选择框选择的选项。我也试过 $("#salesrep").val(result[0]); 没有任何运气。

任何帮助表示赞赏。

所以我想要的是在销售代表下拉列表中选择/突出显示的选项是 Bruce Jones。

HTML 为:

 <select id="salesrep" data-theme="a" data-mini="true" name="salesrep">
<option value=""> </option>
<option value="john smith">john smith</option>
<option value="Bruce Jones" selected >Bruce Jones</option>
<option value="Adam Calitz">Adam Calitz</option>
<option>108</option>
</select>

再次感谢,

整个脚本

<script type="text/javascript">
    $(document).ready(function () {

           $("#customer").autocomplete(
     {
     source: "get_customers",
     messages:
     {
     noResults: '',
     results: function() {}
     },
     select: function( event, ui )
     {
      var selectedObj = ui.item;

     $.post('GetSalesRepfromCustomer', {data:selectedObj.value},function(result) {
      alert(result[0]);
       var selnametest="Bruce Koller";
    $("#salesrep").val(selnametest);
     });

     }
     });
         });

</script>

呈现的 HTML 是:

 <select id="salesrep" data-theme="a" data-mini="true" name="salesrep">
<option value=""> </option>
<option value="RyanLubuschagne">Ryan Lubuschagne</option>
<option value="Bruce Jones">Bruce Jones</option>
<option value="Adam Calitz">Adam Calitz</option>
</select>

原文由 Smudger 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 375
2 个回答

尝试这个 :

 $('select[name^="salesrep"] option[value="Bruce Jones"]').attr("selected","selected");

只需将 option[value="Bruce Jones"] 替换为 option[value=result[0]]

在选择新选项之前,您可能希望“取消选择”之前的选项:

 $('select[name^="salesrep"] option:selected').attr("selected",null);

您可能也想阅读: jQuery get specific option tag text

编辑: 使用 jQuery Mobile,此链接可能会提供一个很好的解决方案: jquery mobile - set select/option values

原文由 Jb Drucker 发布,翻译遵循 CC BY-SA 3.0 许可协议

设置将其设置为下拉列表的选定选项的值:

 $("#salesrep").val("Bruce Jones");

这是工作演示

如果它仍然不起作用:

  1. 请检查控制台上的 JavaScript 错误。
  2. 确保你包含了 jquery 文件
  3. 如果在外部使用,您的网络不会阻止 jquery 文件。
  4. 一段时间检查你的视图源元素停止 jquery 的精确副本以正常工作

原文由 Zaheer Ahmed 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题