jquery multiselect下拉列表复选框动态怎么动态添加option并赋值

2024-11-16 08:56:18
推荐回答(4个)
回答1:

虽然不太明白为什么refresh方法不起作用,不过还有另外一个方法:

// data 是ajax返回的json数据
$.get("xxx.html?a=" + a, function (data) {
var site = new Array();
$.each(data, function(index, values) {
    //循环将data数据的结构重新调整为下面这样的:[{label:xxx,value:id}]
    // laebl相当于option的文字,value则是option的value,结构不能错
site.push({
label : values.site_name,
value : values.id
});
});
//重点是这里,不用refresh方法,用下面这个。
$("#site_id").multiselect('dataprovider',site);
});

如果你在查询数据库的时候直接就这样:

select id as value, city_name as label from 表名

那么返回值在js那里就不需要循环改变结构了,直接可以用:

$("#site_id").multiselect('dataprovider',data);

回答2:

你可以在select控件的子节点上面绑定一个click的事件,


var optStr =“”;
//比如子节点是一个div
$("#select").find("div").click(function(){
        //每次单击都获取选定值的数组 并拼接成逗号分割的字符串
        // 这样就不用每次都判断 选中或者取消的值是否在原字符串当中
        optStr = $.map($("#select").find("checkbox:checked").val(), function) {             return $(this).val();         }).get().join(",");
});
只是对你提的问题给一个大概的思路,希望对你有帮助,不懂的地方可以追问。望采纳...

回答3:

用jquery将对方取到,然后用add方法,将所添加的元素和值,添加到复选框里
$("select option").add("");

回答4:

看源码,有个refresh方法,每次动态将select里的option跟换,然后调用refresh就ok