我试图在div中动态附加复选框。
我想要一个javascript函数来执行以下操作:
这是我到目前为止所做的:
var chkArray = [];
$(".Checked:checked").each(function () {
chkArray.push($(this).attr("id"));
});
var selected;
selected = chkArray.join(',') + ",";
if (selected.length > 1) {
return chkArray;
}
答案 0 :(得分:5)
我不确定你为什么要加入阵列 - 所以我没有把它包括在内。但这是一个基本方法。 $.map()
将迭代复选框数组并返回当前元素的id,仅在检查时才返回。然后$.map()
将返回的值存储在新数组(chkArray
)中:
$checkbox = $('.Checked');
function checkArray(){
var chkArray = [];
chkArray = $.map($checkbox, function(el){
if(el.checked) { return el.id };
});
console.log(chkArray);
}
答案 1 :(得分:1)
我测试了George的jsfiddle并且无法让它工作但是编辑了他的代码并使它工作你可以尝试这是工作
$('#PostAlert').click(function GetID() {
$checkbox = $('.CheckBxMSG');
var chkArray = [];
chkArray = $.map($checkbox, function (el) {
if (el.checked) { return el.id };
});
alert(chkArray);
})
答案 2 :(得分:0)
取而代之的是使用您的表单ID并在提交时检查所有选中的复选框是什么
$("#formid input:checkbox:checked").each(function() {
var chkArray = [];
chkArray.push($(this).id());
});
答案 3 :(得分:0)
这应该按照你的描述进行
var checkboxes = $("input[type=checkbox]");
var r = [];
checkboxes.on("change",function(e){
if(!e.target.id){
return;
}
if(e.target.checked){
r.push(e.target.id);
}
else{
var index = r.indexOf(e.target.id)
if(~index){
r.splice(index, 1);
}
}
console.log(r);
});
答案 4 :(得分:0)
这就是我要做的事情:
var checkedArray = [];
$(":checkbox").change(function(){
if((this).checked){
checkedArray.push(this.id);
}
else{
checkedArray.splice(checkedArray.indexOf(this.id), 1);
}
//you can call your function here if you need to act on this.
});