我有一个jsp页面,动态地会在该页面上显示该页面上的复选框,当您单击该框时它应保存在数组中,当取消选中该框时,它应该从数组中删除值。
我已经通过创建方法尝试了这个但是它不能很好地工作,请你帮帮我..
function addCheckboxVAlues(checked){
var split = checked.value.split("|");
var key =split[0];
var value=split[1];
var chks = $("input[name='"+key+"']:checked");
if (chks.length > 0) {
uninvoiced.push(value);
} else {
uninvoiced.pop(key);
}
console.log(uninvoiced);
}
答案 0 :(得分:2)
您需要使用splice从数组中删除元素
{{1}}
答案 1 :(得分:0)
此代码看起来比它需要的更复杂。据推测,复选框上有一个点击监听器,因此应该使用复选框调用 this 。您只需在选中复选框时添加值,或者如果未选中该复选框,则将其删除。
这比每次运行检查选择器效率更高。
以下使用内联侦听器是为了方便,就像你动态地附加它们一样,但它似乎被称为相同的方式。
foo|bar: <input type="checkbox" value="foo|bar" onclick="addCheckbox(this)">
fee|fum: <input type="checkbox" value="fee|fum" onclick="addCheckbox(this)">
&#13;
{{1}}&#13;
indexOf on MDN有一个polyfill。