我有一些问题,如何使用newArray[]
中的值填充一些复选框。这里代码如下:
HTML:
<form id="myForm">
<div id ="checkboxes">
<table>
<tr>
<td>
<label class="checkbox">
<input type="checkbox" name="my_opt[]" value="1">
Total
</label>
</td>
<td>
<label class="checkbox">
<input type="checkbox" name="my_opt[]" value="2">
Male
</label>
</td>
</tr>
<tr>
<td>
<label class="checkbox">
<input type="checkbox" name="my_opt[]" value="3">
Female
</label>
</td>
<td>
<label class="checkbox">
<input type="checkbox" name="my_opt[]" value="4">
Age
</label>
</td>
</tr>
<tr>
<td>
<label class="checkbox">
<input type="checkbox" name="my_opt[]" value="5">
Score
</label>
</td>
</tr>
</table>
</div>
<input id='my_opt' type='hidden' name='my_opt[]' />
</form>
脚本:
<script>
//checkboxes
var check_box_values = $('#myForm [type="checkbox"]:not(:checked)').map(function () {
return parseInt(this.value);
}).get();
(...)
j = j + 1;
//creating new button
$("#save").append(
$("<input type=button id=saved"+j+">").click(function() {
(...)
}).text("Chart"+j)
);
//change the checkboxes to new values from array
var newArray = [];
newArray[4] = check_box_values; //i want that to be [4]
//click on new button
$('#saved'+j).click(function() {
$('#checkboxes').val(newArray[4]);
});
</script>
这不起作用,错误似乎在$('#checkboxes').val(newArray[4]);
中。
我想要的是根据newArray[4];
的数据选中复选框
例如。如果newArray[4] = [2,3,4]
我错过了语法:你可以帮帮我吗?
答案 0 :(得分:1)
我认为这是你想要实现的目标。
这是实时example
以下是使用jQuery的代码:
$(function(){
var $checkboxes = $('#checkboxes').find('input[type=checkbox]'),
times = 0;
function checkBoxes() {
var checked = [],
unchecked = [];
$checkboxes.each(function (index) {
if ($(this).is(':checked')) {
checked.push(index);
} else {
unchecked.push(index);
}
});
$('#checkboxes').append('<a href="#" class="btn">Check boxes [' + checked.toString() + ']</a>')
.find('a.btn:last')
.data('check', checked)
.on('click', function () {
var data = $(this).data('check');
console.log(data, $(this).index());
$checkboxes.attr('checked', false);
$checkboxes.each(function (index) {
if (data.indexOf(index) >= 0) {
$(this).attr('checked', true);
}
});
});
}
setInterval(checkBoxes, 3000);
});