在使用ajax调用Web服务后,我得到了这样的json,我已经解码了json以将每个值依次警告为员工和临时值,现在我想将这些值放入下拉列表中带有 id ultra 的表单字段,我得到 下拉菜单中有 2 个空字段 + 我已解码的值。我在项目中的 json 响应是
["Employee","Temporary"]
我的 ajax 调用和解码结果并警告返回 json 中的每个元素的 codd
function ajax(){
var loc=document.getElementById('category_id1').value;
alert(loc);
var req;
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
req=new XMLHttpRequest();
}
else
{// code for IE6, IE5
req=new ActiveXObject("Microsoft.XMLHTTP");
}
req.open("POST", "ajax.php?&loc="+loc+"", true);
req.send();
var html
req.onreadystatechange=function(){
if(req.readyState==4&&req.status==200){
//$(".error").hide();
result=req.responseText
//alert(result);
var items = JSON.parse(result);
//alert(items.length)
for(var i=0; i<items.length; i++)
{
var item = items[i];
//alert(item);
html=html+"<option value="+item+">"+item+"<option>"
}
}
document.getElementById("Ultra").innerHTML=html
}
}
<form>
<label for="subcategory">Sub Category</label>
<select style="width:305px" name="subcategory" id="Ultra" onchange="run()">
<option value="">Select</option>
</select>
</form>
同一页面上的表单字段是 我这里没有空字段我做错了什么 谢谢
最佳答案
首先,您在模板中犯了错误(未闭合标签),我建议使用引号来定义选择值。您正在使用
html=html+"<option value="+item+">"+item+"<option>"
而不是
html=html+"<option value='"+item+"'>"+item+"</option>"
我创建了简单的 jsfiddle 来演示它是如何工作的:http://jsfiddle.net/KPGhY/
还可以在此处为感兴趣的人添加代码:
HTML 是一样的,JS 是:
var items = [ "Employee", "Temporary" ];
var html = '<option value="">Select</option>';
for ( var i = 0; i < items.length; i++ ) {
html += "<option value='" + items[ i ] + "'>" + items[ i ] + "</option>"
}
document.getElementById("Ultra").innerHTML = html;
关于javascript - 解码ajax响应下拉后出现空下拉字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15943374/