Ajax 在 select2 中选择多个值
Ajax selecting multiple values in select2
我正在使用 select 2,我有来自 ajax 的 json 格式的数据。
查看:
<select class="form-control qual_id" multiple>
<option value="">-Select Degree-</option>
<option value="1">SSC</option>
<option value="2">HSC</option>
<option value="3">BBA</option>
<option value="4">MBA</option>
</select>
Ajax:
var defaultValue = 1,2 // (it can be one id or two ids)
$(`.qual_id option[value=${defaultValue}]`).attr('selected', true);
select2:
<script type="text/javascript">
$('.qual_id').select2({
width: 'resolve',
maximumSelectionLength: 2
});
</script>
if i remove multiple from select tag and and do it without select2 with one id, it is
working fine, but how can i do it by selecting multiple values in select.
控制台:
Uncaught Error: Syntax error, unrecognized expression: .qual_id
option[value=1,2]
var defaultValue = [1,2];
$(`.qual_id`).val(defaultValue);
这应该设置默认选择的值 1 和 2。
几个月前我回答过类似的问题。可以参考Dynamically add item to jQuery Select2 control that uses AJAX。
要回答您的问题,请考虑这个示例。
for(let i=0; i<jsonResponse.length; i++) {
$(".qual_id").each(function() {
if($(this).val() == jsonResponse[i]) {
// select the option
}
});
}
$('.qual_id').trigger('change');
您正在寻找的是 .trigger() 方法。参考 Select2 Docs
我正在使用 select 2,我有来自 ajax 的 json 格式的数据。
查看:
<select class="form-control qual_id" multiple>
<option value="">-Select Degree-</option>
<option value="1">SSC</option>
<option value="2">HSC</option>
<option value="3">BBA</option>
<option value="4">MBA</option>
</select>
Ajax:
var defaultValue = 1,2 // (it can be one id or two ids)
$(`.qual_id option[value=${defaultValue}]`).attr('selected', true);
select2:
<script type="text/javascript">
$('.qual_id').select2({
width: 'resolve',
maximumSelectionLength: 2
});
</script>
if i remove multiple from select tag and and do it without select2 with one id, it is working fine, but how can i do it by selecting multiple values in select.
控制台:
Uncaught Error: Syntax error, unrecognized expression: .qual_id option[value=1,2]
var defaultValue = [1,2];
$(`.qual_id`).val(defaultValue);
这应该设置默认选择的值 1 和 2。
几个月前我回答过类似的问题。可以参考Dynamically add item to jQuery Select2 control that uses AJAX。
要回答您的问题,请考虑这个示例。
for(let i=0; i<jsonResponse.length; i++) {
$(".qual_id").each(function() {
if($(this).val() == jsonResponse[i]) {
// select the option
}
});
}
$('.qual_id').trigger('change');
您正在寻找的是 .trigger() 方法。参考 Select2 Docs