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');
});
答案 0 :(得分: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