我有一个包含多个下拉列表的表单
<select id="0" name ="0">
<option value="abc">ABC</option>
<option value="def">DEF</option>
.
.
.
<option value="mno">MNO</option>
</select>
.
.
.
<select id="9" name="9">
<option value="abc">ABC</option>
<option value="def">DEF</option>
.
.
.
<option value="mno">MNO</option>
</select>
// 这是代码的基本结构
现在我有一个ajax调用,它提供了以下json数据
{ “2”: “ABC”, “5”: “DEF”, “6”: “GHI”, “7”: “DEF”, “4”: “MNO”}
我想根据json数据
填充下拉列表例如,对于这种情况,带有id 2 show的下拉列表选项值为abc,带有od 5的下拉列表应该选择值作为def选择等等。
$.ajax({
type : 'POST',
url : ajax_url,
data : datavar,
success : function(msg) {
}
});
json数据存在于成功的msg参数中。
我该怎么办?
提前致谢。
答案 0 :(得分:1)
如果你想保留所有jquery,就这样做吧。)
$.ajax({
type : 'POST',
url : ajax_url,
data : datavar,
success : function(msg) {
$.each(msg, function(k, v){
$('#'+k).val(v);
});
}
});
这将遍历每个返回的对象属性,并使用k(键)查找选择并分配所选值(v)。
你也可以这样做:
for(var key in msg){
if(msg.hasOwnProperty(key)){
$('#'+key).val(msg[key]);
}
}
您只需确保修复选择框的值属性即可。现在他们缺少尾随值=“ABC(”)......这将导致问题
答案 1 :(得分:0)
由于你使用的是AJAX和JQUERY,这就是我完成你的壮举的方法:
for(var i = 0; i <= msg.length; i+=2) {
$('#' + msg[i]).val(msg[i+1]);
}
这将获取JSON数据中的第一个项目,即选择框ID,并将其值设置为第二个JSON数据。在效果中,它告诉下拉框在包含该值的OPTION上设置SELECTED =“SELECTED”。
对不起,如果不是那么清楚!