我的复选框有问题。 我试图创建一个脚本,点击一个复选框来计算所有复选框, 并且每次检查都将其值分配给数组,并且对于未选中的数组分配0。
例如,如果我们有五个复选框,则检查最后两个,数组将为:0,0,0,4,5。 如果您再选中一个复选框(例如第一个复选框),则结果为:1,0,0,4,5。 如果取消选中最后两个,结果为:1,0,0,0,0。
这个array(1, 0, 0, 0, 0)
我通过数据库中的Ajax发送,这样当我打开相同的订单时,
第一个复选框已经过检查。
无论如何,谢谢你的帮助。
<input type="checkbox" name="service[]" value="1">service 1<br>
<input type="checkbox" name="service[]" value="2">service 2<br>
<input type="checkbox" name="service[]" value="3">service 3<br>
<input type="checkbox" name="service[]" value="4">service 4<br>
<input type="checkbox" name="service[]" value="5">service 5<br>
$(document).ready(function() {
$("input[name='service[]']").click(function(){
var favorite = new Array();
$.each($("input[name='service[]']:checked"), function(){
favorite.push($(this).val());
});
alert("My services are: " + favorite.join(", "));
});
});
答案 0 :(得分:1)
$(document).ready(function() {
$("input[name='servis[]']").click(function(){
var favorite = new Array();
$.each($("input[name='servis[]']"), function(){
if($(this).prop('checked')){
favorite.push($(this).val());
}else{
favorite.push(0);
}
});
console.log("My favourite sports are: " + favorite.join(", "));
});
});
我更改输入[name =&#34; ali_servis []&#34;]并添加if in each for print 0
链接JsFiddle:https://jsfiddle.net/w7p5ufy8/5/
答案 1 :(得分:1)
如果您从:checked
移除$.each($("input[name='service[]']:checked")
,则可以保留现有代码的大部分内容,只需更改一行。
变化:
favorite.push($(this).val());
到
favorite.push($(this).is(':checked') ? $(this).val() : 0);
或:
favorite.push(this.checked ? this.value : 0);
<强> jsFiddle example 强>
答案 2 :(得分:1)
使用此:
$("input[name='service[]']").each(function(){
favorite.push( this.checked ? this.value : 0 );
});
答案 3 :(得分:0)
使用i s()检查并有条件地添加0
,而不是仅添加选中复选框的值。
$(document).ready(function() {
$("input[name='mali_servis[]']").click(function() {
var favorite = new Array();
$.each($("input[name='servis[]']"), function() {
if ($(this).is(':checked')) {
favorite.push($(this).val());
} else {
favorite.push(0);
}
});
console.log("My favourite sports are: " + favorite.join(", "));
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script>
<input type="checkbox" name="servis[]" rel='1' value="1">servis 1
<br>
<input type="checkbox" name="servis[]" rel='2' value="2">servis 2
<br>
<input type="checkbox" name="servis[]" rel='3' value="3">servis 3
<br>
<input type="checkbox" name="servis[]" rel='4' value="4">servis 4
<br>
<input type="checkbox" name="servis[]" rel='5' value="5">servis 5
<br>
<input type="button" name="mali_servis[]" value="Submit">
答案 4 :(得分:0)
<强> HTML 强>
<fieldset id="checkboxes">
<input type="checkbox" name="servis[]" rel='1' value="1">servis 1<br>
<input type="checkbox" name="servis[]" rel='2' value="2">servis 2<br>
<input type="checkbox" name="servis[]" rel='3' value="3">servis 3<br>
<input type="checkbox" name="servis[]" rel='4' value="4">servis 4<br>
<input type="checkbox" name="servis[]" rel='5' value="5">servis 5<br>
</fieldset>
<强>的jQuery 强>
$(document).ready(function() {
var checkboxes = $("#checkboxes input");
checkboxes.on("click", function() {
var favorite = new Array();
checkboxes.each(function() {
if ($(this).is(":checked")) {
favorite.push($(this).val());
} else {
favorite.push(0);
}
});
alert("My favourite sports are: " + favorite.join(", "));
});
});