我以Json格式传递给Select2组件值,而不是我想要选择其中一个值。
这是我的代码:
$.getJSON(rootUrl+'getAllValues', {
valu : $('#_valu_id').val()
}, function(data) {
var html = '<option value=""></option>';
var len = data.length;
for ( var i = 0; i < len; i++) {
if(data[i].myfield == $('#myfield').val()){
html += '<option value="' + data[i].id + '" selected>'+ data[i].myfield + '</option>';
}else{
html += '<option value="' + data[i].id + '">'+ data[i].myfield + '</option>';
}
}
$('#_mySelect_id').html(html);
});
但仅使用selected
属性,它无法正常工作。
编辑:这是html
变量:
<option value=""></option>
<option value="30">U</option>
<option value="31">G</option>
<option value="32" selected="selected">A</option>
<option value="93">H</option>
我可以这样做吗?
提前感谢
答案 0 :(得分:2)
更改Select2的HTML内容后,您必须更新所选的值:
function(data) {
var html = '<option value=""></option>';
var len = data.length;
for ( var i = 0; i < len; i++) {
if(data[i].myfield == $('#myfield').val()){
var selected_value = data[i].id; // Remember selected value
html += '<option value="' + data[i].id + '" selected>'+ data[i].myfield + '</option>';
}else{
html += '<option value="' + data[i].id + '">'+ data[i].myfield + '</option>';
}
}
$('#_mySelect_id').html(html);
$('#_mySelect_id').select2().select2('val',selected_value); // Update selected value
}