如何使用jQuery向Select下拉框追加选项?附相关代码片段
解决jQuery向Select下拉框追加选项的问题
嘿,我一眼就看出你代码里的问题啦——在$.each循环里,你错误地直接用了整个data数组对象来取属性,而不是用循环迭代时的当前项value。这会导致所有下拉选项都重复同一个值(甚至可能取不到正确值),给你修正后的完整代码:
首先是你的HTML部分(保持不变):
<select class="form-control prod" name="SalesPerson" id="SalesPerson" required> <!-- <option value="">Select Sales Person</option> --> </select>
然后是修正后的Ajax成功回调代码:
success: function(data){ console.log(data); // 可选:清空下拉框原有选项,防止多次调用Ajax时重复追加 $('#SalesPerson').empty(); // 遍历返回的data数组,每一项用value指代 $.each(data, function(key, value) { // 用value访问当前项的admin_id和fname属性 $('#SalesPerson').append("<option value='" + value.admin_id + "'>" + value.fname + "</option>"); }); }
几个关键说明:
- 核心修正:把
data.admin_id和data.fname改成value.admin_id和value.fname,因为data是整个数组,而value才是循环到的单个对象 - 建议恢复注释掉的默认提示选项:把
<!-- <option value="">Select Sales Person</option> -->的注释去掉,这样用户打开页面时能看到明确的选择提示 - 可选的
empty():如果你的Ajax请求可能被多次触发,加上这个方法可以清空之前的选项,避免下拉框里堆满重复内容
内容的提问来源于stack exchange,提问作者Shreyas Achar
相关产品推荐
相关产品推荐

