0

GrabData 函数获取选中复选框的值并将其提交到我的数据数组。我想知道的是,如果没有提交选中的复选框,我该如何设置state-0我也希望在没有选中复选框alert时设置 - 验证

   function grabData(checked){
        checked = typeof(checked) == 'undefined' ? false : checked;
        var items = document.getElementsByClassName('product_category_selector');
        var data  = [];

        for(var i = 0; i < items.length; i++){
            if(items[i].type != 'checkbox' || items[i].checked != checked){
                 continue;
            }

            data.push(items[i].getAttribute('data-id'));
        }

        return data;
    }
                $('body').on("click", "#brands_by_category_submit_btn", function (e) {
                     e.preventDefault();               
                    var self = $(this);
                    var box  = $("#catInfo"); 
                    var id = $("#manID").data("id");
                    var cat_id = grabData();

                    var url = $("#brands_by_category_submit_btn").data("url");

                    var data_array = { 
                            id : id, 
                            cat_id : grabData(true), 
                            state: 1
                        };

                            ajaxCall(url, data_array,'catInfo');

                });  
4

1 回答 1

2

首先,您可以大大简化您的grabData功能。

function grabData(checked) {
    return $('.product_category_selector' + (checked? ':checked' : ':not(:checked)')).map(function (index, chk) {
        return $(chk).data('id');
    }).get();
}

然后在点击处理程序中,您可以执行以下操作:

var data = grabData(true); //get checked checkbox data-id values

console.log(data.length); //if 0, no items were checked
于 2013-09-21T03:26:26.960 回答