【发布时间】:2018-04-01 04:39:43
【问题描述】:
我正在尝试使用 jQuery 将通过 ajax 返回的一些用户名加载到下拉菜单中。结果成功进入下拉菜单,但所有数据仅进入一个选项标签。我希望数据位于不同的选项标签中。
目前下拉菜单如下所示
姓名1,姓名2,姓名3,姓名4
但我想要:
姓名1
名字2
名字3
名字4
我放置结果的下拉菜单:
<div class="form-group">
<select name="name" class="form-control" id="employee_select">
</select>
</div>
jQuery:
//send value via GET to URL
var get_request = $.ajax({
type: 'GET',
url: '/users',
data: {User:User}
});
// handle response
get_request.done(function(data){
// Data returned
dataReturned = data;
// Log data
console.log($.type(dataReturned)); // response is string in the form of
// Name1
// Name2
// Convert to an array
dataArray = [dataReturned]
// Create a new array
newArray = [];
// Populate newArray with items
for(i=0;i<dataArray.length;i++){
if(typeof(dataArray[i])=='string'){
newArray.push(dataArray[i])
}
}
//console.log(newArray);
console.log($.type(newArray)); // an array is returned in the form of ["Name1,Name2,Name3,Name4"]
// Loop through newArray
$.each(newArray, function( index, value) {
$('#employee_select').append("<option>"+ value + "</option>");
})
谢谢。
【问题讨论】:
-
您需要修复来自用户的结果。分享您如何从 URL 传递结果
-
检查您返回的字符串是否不包含 \n\n - 当您使用 \n 拆分它时 - 将创建 empy 数组元素,然后将其传递到选项中。如果您使用 console.log(str) ,那么您将能够在拆分之前看到返回的数据。
标签: javascript jquery html drop-down-menu