确保在页面上检查复选框重新加载jQuery

时间:2013-09-18 13:40:04

标签: javascript jquery html checkbox

所以我在这个jQuery片段中有一些奇怪的功能:

$(document).ready(function()
{
    $('.pinToggles').attr('checked','checked');
})

这是html:

<input type="checkbox" id="redCheck" name="pinSet" value="Red" class="pinToggles" onclick="pinSetCheck(redSet)">Red
<input type="checkbox" id="yellowCheck" name="pinSet" value="Yellow"  class="pinToggles" onclick="pinSetCheck(yellowSet)">Yellow<br>
<input type="checkbox" id="greenCheck" name="pinSet" value="Green"  class="pinToggles" onclick="pinSetCheck(greenSet)">Green
<input type="checkbox" id="blueCheck" name="pinSet" value="Blue"  class="pinToggles"onclick="pinSetCheck(blueSet)">Blue<br>

最终发生的事情是,如果我取消选中某些框然后重新加载,它将只检查第一个未选中的框,然后每次刷新后检查以下未选中的框。我想要的功能是刷新是要检查的所有复选框。

我能用javascript实现这一点:

document.getElementById('redCheck').checked = true;
document.getElementById('yellowCheck').checked = true;
document.getElementById('greenCheck').checked = true;
document.getElementById('blueCheck').checked = true;

但我认为jQuery是更好的做法,但不确定为什么它会以现在的方式作出反应。

1 个答案:

答案 0 :(得分:3)

使用

$('input:checkbox[name="pinSet"]').prop('checked',true);

attribute-equals-selector

$('.pinToggles').prop('checked',true);

$('#redCheck,#yellowCheck,#greenCheck,#blueCheck').prop('checked',true);

.prop()

  

$(elem).prop(“checked”)true(布尔值)将随复选框一起更改   状态

     

$(elem).attr(“checked”)(1.6)“checked”(String)的初始状态   复选框;不会改变