如何使用jQuery UI MultiSelect Widget获取多个复选框值?

时间:2014-02-26 08:29:09

标签: jquery select

我的multiselect会自动生成复选框的名称,例如:name="multiselect_categorySelect。我想像这样自动生成:name="multiselect_categorySelect[]和'[]'。我正在使用this site

中的多重选择

我的代码是:

<select  multiple="multiple" id ="categorySelect" name = "category" >     
 <option values ="1">Category 1 </option>
 <option values ="2">Category 2 </option>
 <option values ="3">Category 3 </option>
</select>
<script type="text/javascript">
    $("#categorySelect").multiselect({
                    header: false

    });
</script>

如上所述,我可以在multiselect中包含哪些内容来生成复选框的名称?

2 个答案:

答案 0 :(得分:1)

由于没有选项,您必须修改原始来源。在第165行

html += '<input id="' + inputID + '" name="multiselect_' + id + '" type="' + (o.multiple ? "checkbox" : "radio") + '" value="' + value + '" title="' + title + '"';

变化

name="multiselect_' + id + '"

name="multiselect_' + id + '[]"

或者,如果您不想触摸源,请使用小部件创建事件:

create: function () {
    var $widget = $(this).multiselect("widget");
    var $inputs = $widget.find(".ui-multiselect-checkboxes input:checkbox");
    var newName = $inputs.first().attr("name") + "[]";
    $inputs.attr("name", newName);
}

看到这个小提琴:http://jsfiddle.net/akhyp/982/

答案 1 :(得分:0)

这不是一个好的答案,但它有效:

$(" label input").each(function(){
            var x = $(this).attr("name",$(this).attr("name")+"[]");
});