根据选择字段自动选中复选框

时间:2015-12-19 13:50:52

标签: javascript jquery checkbox

我有工作代码来检查复选框但只有在第一个复选框已经过检查时才有效。你们有没有想过为什么?

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>

2 个答案:

答案 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');

FIDDLE

使用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
        }