Javascript 在select2上重置所有选项,然后加载另一个数据集
我在使用Javascript 在select2上重置所有选项,然后加载另一个数据集,javascript,jquery,jquery-select2,Javascript,Jquery,Jquery Select2,我在使用JquerySelect2时遇到了一个问题。我想设置一个select2选项来更改另一个select2选择框 var categorySelect = $('#category_select'); var productSelect = $('#product_select'); categorySelect.select2(); productSelect.select2(); categorySelect.
Jquery
Select2
时遇到了一个问题。我想设置一个select2选项来更改另一个select2选择框
var categorySelect = $('#category_select');
var productSelect = $('#product_select');
categorySelect.select2();
productSelect.select2();
categorySelect.on('change',function () {
var categoryId = $(this).val();
var url = "{{url("/ajax/category/:category/products")}}";
url = url.replace(":category",categoryId);
$.get(url,function (res) {
var res = [
{id: 900, text: 'AABB'},
{id: 800, text: 'WWBB'},
]; // dummy response
productSelect.select2('data',res);
})
})
在这里,我按照他们的文档进行操作,但不明白为什么无法再次获取set数据。我用自己的方式解决了这个问题。我在响应数据数组中循环,并创建产品选择框的选项
var categorySelect = $('#category_select');
var productSelect = $('#product_select');
categorySelect.select2();
productSelect.select2();
categorySelect.on('change',function () {
var categoryId = $(this).val();
var url = "{{url("/ajax/category/:category/products")}}";
url = url.replace(":category",categoryId);
$.get(url,function (res) {
var res = [
{id: 900, text: 'AABB'},
{id: 800, text: 'WWBB'},
];
if(res.length > 0) {
productSelect.empty();
res.forEach(function (prod) {
var opt = $('<option>', {
'value' : prod.id
}).text(prod.text);
productSelect.append(opt);
});
}
})
});
var categorySelect=$(“#category_select”);
var productSelect=$(“#product_select”);
categorySelect.select2();
productSelect.select2();
categorySelect.on('change',function(){
var categoryId=$(this.val();
var url=“{url(“/ajax/category/:category/products”)}”;
url=url.replace(“:category”,categoryId);
$.get(url,函数(res){
var res=[
{id:900,文本:'AABB'},
{id:800,文本:'WWBB'},
];
如果(分辨率长度>0){
productSelect.empty();
res.forEach(功能(产品){
变量opt=$(''{
“值”:prod.id
}).文本(prod.text);
productSelect.append(opt);
});
}
})
});
这可能会有帮助: