如何在multiselect onchange事件中获取复选框值

时间:2013-02-15 09:14:22

标签: javascript jquery jquery-ui multi-select

我实现了jquery multiselect并且它正常工作现在我需要添加额外的功能,当用户在下拉列表中选择另一个选项时(选中另一个复选框)然后我想获得相关选项的值

enter image description here

在上面的图片中没有插入复选框它现在由jquery自动插入我希望如果我选择带有XYZ的check =框然后我想获得XYZ的值,这是id

XYZ

这是我如何实现它

 <select multiple="multiple" id="CParent" name="parent" class="box2 required">
                        @foreach (var item in Model.Categories.OrderBy(c => c.Name))
                        {

                            if (Model.Coupon.Categoryid.Id == item.Id)
                            {   
                            <option  selected="selected" value="@item.Id">@item.Name</option>

                            }
                            else
                            {
                            <option  value="@item.Id">@item.Name</option>                                                                                  
                            }
                        }
                    </select>

它是在浏览器源中呈现后的样子

enter image description here

先谢谢你的帮助。

我尝试了什么

  $('#CParent input:checked').change(function () {

        var parentid = $(this).val()+'';
        var array = parentid.split(",");
        alert(array);
        getchildcat(array[array.length -1]);
    });

});

修改

初始化多选的代码

$("#CParent").multiselect({
    header: "Choose only THREE items!",
    click: function () {
        if ($(this).multiselect("widget").find("input:checked").length > 3) {
            $(warning).show();
            warning.addClass("error").removeClass("success").html("You can only check three checkboxes!");
            return false;
        }
        else if ($(this).multiselect("widget").find("input:checked").length <= 3) {

            if ($(warning).is(":visible")) {

                $(warning).hide();
            }

        }

    }
});

1 个答案:

答案 0 :(得分:1)

试试这个

$('#CParent').val();

这将为您提供选择框值

来自docs

 var array_of_checked_values = $("#CParent").multiselect("getChecked").map(function(){
   return this.value;   
 }).get();