我有工作代码来检查复选框但只有在第一个复选框已经过检查时才有效。你们有没有想过为什么?
HTML :
Finatra
jQuery (安全,因为它将在WordPress中实现)
<p id="ullman_seats"><input class="choice" type="checkbox" name="option['option']" value="3000"> Ullman seats
<select id="select_ullman">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
</select>
</p>
<p id="ullman_seats_2"><input class="choice" type="checkbox" name="option['option']" value="3000"> Ullman seats</p>
<p id="ullman_seats_3"><input class="choice" type="checkbox" name="option['option']" value="3000"> Ullman seats</p>
<p id="ullman_seats_4"><input class="choice" type="checkbox" name="option['option']" value="3000"> Ullman seats</p>
答案 0 :(得分:2)
您使用了错误的方法,可以将.attr('checked', true)
更改为.prop('checked', true)
等以使其正常工作,但这样做的方法更简单
jQuery('#select_ullman').on('change', function() {
$('.ullman_seats input').prop('checked', function(i, prop) {
return i < this.value;
}.bind(this));
}).trigger('change');
使用prop()
的回调并直接比较每个元素的索引
答案 1 :(得分:0)
你必须使用.prop(&#39; checked&#39;,true);
jQuery('#select_ullman').change(function () {
if (jQuery(this).val() == '2') {
jQuery('#ullman_seats input').prop('checked', true);
jQuery('#ullman_seats_2 input').prop('checked', true);
}if (jQuery(this).val() == '3') {
jQuery('#ullman_seats input').prop('checked', true);
jQuery('#ullman_seats_2 input').prop('checked', true);
jQuery('#ullman_seats_3 input').prop('checked', true);
}if (jQuery(this).val() == '4') {
jQuery('#ullman_seats input').prop('checked', true);
jQuery('#ullman_seats_2 input').prop('checked', true);
jQuery('#ullman_seats_3 input').prop('checked', true);
jQuery('#ullman_seats_4 input').prop('checked', true);
} }
选中和复选复选框
if ($('#id').is(':checked') == true) {
//Do something
}
else {
//Do something else
}