在jQuery中,复选框在空数组中推入它们的值,但在未选中时弹出或移动值
Checkboxes that push their value in an empty array but pop or shift the value when unchecked in jQuery
所以我有一个复选框列表,我把它们的值推到一个仅限于3个选择的数组中。这些选择以div的形式显示在页面上。推动部分工作得很好…我遇到的问题是,当我取消选择或取消复选框时,我希望值从数组中弹出或删除,这反过来又从视图中删除或分离它们。
/* checkboxes */
selections = new Array();
$("input[type='checkbox']").change(function () {
var maxAllowed = 3;
var cnt = $("input[type='checkbox']:checked").length;
var checkIt = $("input[type='checkbox']");
var chkboxVal = $(this).val();
//reset selections counter
if (cnt <= maxAllowed) {
$('.selCount .counter').html(selReset-cnt);
selections.push(chkboxVal);
} else if (cnt > maxAllowed) {
$(this).prop("checked", "");
$(this).unbind("click");
$(this).css("cursor","default");
}
var Item1 = selections[0];
var Item2 = selections[1];
var Item3 = selections[2];
var bindedChoice1 = $('<div class="sel1">'+Item1+'</div>');
var bindedChoice2 = $('<div class="sel2">'+Item2+'</div>');
var bindedChoice3 = $('<div class="sel3">'+Item3+'</div>');
//Index of check
if (cnt == 1) {
$(".catSelBar").append(bindedChoice1);
console.log(selections);
}
if (cnt == 2) {
$(".catSelBar").append(bindedChoice2);
console.log(selections);
}
if (cnt == 3) {
$(".catSelBar").append(bindedChoice3);
console.log(selections);
}
if(!$(this).prop("checked") && cnt == 1 && $('.catSelBar div').hasClass("sel1")) {
$(".sel1").detach();
selections.pop();
console.log(selections);
}
if(!$(this).prop("checked") && cnt == 1 && $('.catSelBar div').hasClass("sel2")){
$(".sel2").detach();
selections.pop();
console.log(selections);
}
if(!$(this).prop("checked") && cnt == 2 && $('.catSelBar div').hasClass("sel3")) {
$(".sel3").detach();
selections.pop();
console.log(selections);
}
}); //checkbox change function
当我过去做这样的事情时,有时我会重新构建选择数组。
下面是一些示例代码:$(function() {
var selections = [],
render_selections = function() {
$('#selections').html(selections.join(', '));
};
$('input[type="checkbox"]').change(function() {
selections = $.map($('input[type="checkbox"]:checked'), function(a) { return a.value; })
render_selections();
});
});
,这里是一个示例小提琴:http://jsfiddle.net/v4w25pe5/
相关文章:
- Jquery移动转换复选框在Jquery onclick函数()中第二次选中不起作用
- jQuery 单击外部元素可向上或向下移动包含选中复选框的无序列表项
- 如何刷新 jquery 移动复选框主题
- Dojo CheckMulti Select - 如何将复选框移动到标签右侧
- Javascript和复选框与移动设备的兼容性
- PHP-选中复选框时,将内容移动到列表的底部
- ngTouch's ngClick可防止复选框和视频在大多数移动设备中工作
- 在jQuery中,复选框在空数组中推入它们的值,但在未选中时弹出或移动值
- 如何勾选“复选框”动态- jQuery移动版
- Jquery移动复选框未更新
- 如何在不使用jQuery的情况下复制jQuery移动堆叠复选框?
- Javascript复选框在移动设备上总是返回true
- jquery移动复选框和asp.net
- AngularJS指令移动复选框
- 当鼠标悬停在表格上时,复选框会向左移动
- 移动& lt; tr>根据复选框内是否包含
检查 - 加载复选框之前点击移动页面jquery
- 动态创建的复选框不能在移动Safari上工作
- 移动浏览器上较大的复选框
- 在移动设备上隐藏复选框的奇怪问题