这部分代码使用jQuery隐藏/显示表单字段。隐藏它们时,这些字段的值将设置为空。对于具有唯一ID的输入字段,这很容易。我遇到了复选框的问题。下面的代码适用于三个复选框。但我必须使用相同的技术来处理一组26个复选框。我怎样才能更有效地做到这一点?
$(".transfer").click(function(){
if ($('input[name=transfer_position]:checked').val() == "yes" ) {
//Slide Down Effect
$(".transfer_details").slideDown("slow");
document.getElementById('transfer_interest').focus();
} else {
//Slide Up Effect
$(".transfer_details").slideUp("slow");
document.getElementById('transfer_interest').value = "";
document.getElementById('select_positions_0').checked = false;
document.getElementById('select_positions_1').checked = false;
document.getElementById('select_positions_2').checked = false;
}
});
<li>
<label>
<input type="radio" name="transfer_position" class="transfer" value="yes" id="transfer_position_0" />
Yes</label>
<label>
<input type="radio" name="transfer_position" class="transfer" value="no" id="transfer_position_1" />
No</label>
</li>
<li class="transfer_details">
<label for="transfer_interest">Why are you interested in transferring to your selected SL positions and what would you bring to that position(s) and team(s)?</label>
<textarea name="transfer_interest" id="transfer_interest" cols="80" rows="6"> </textarea>
</li>
<li class="transfer_details">
<label>
<input type="checkbox" name="select_positions[]" class="select_positons" value="Resident Advisor" id="select_positions_0" />
Resident Advisor</label>
<label>
<input type="checkbox" name="select_positions[]" class="select_positons" value="Programming Assistant" id="select_positions_1" />
Programming Assistant</label>
<label>
<input type="checkbox" name="select_positions[]" class="select_positons" value="Social Justice Advocate " id="select_positions_2" />
Social Justice Advocate </label>
</li>
答案 0 :(得分:3)
使用类,因为许多元素可以共享一个类。因此,您只需取消选中某个类的所有复选框:
$('.select_positions').attr('checked', false);
答案 1 :(得分:0)
当然,使用jquery选择器的惊人力量!
$('li.transfer_details input[type=checkbox]').prop("checked", false);
后代选择器 - http://api.jquery.com/descendant-selector/
设置checked属性 - http://api.jquery.com/prop/
答案 2 :(得分:0)
一种方法是将子选择器与复选框选择器结合使用,并使用jQuery中的每个函数进行迭代,以完成您正在寻找的内容。
请记住,这是未经测试的,所以它可能会引发错误,我相信你会解决这个问题。 在你的上滑效果之下,你需要以下内容:
$('.transfer_details > input:checkbox').each(function() {
(this).checked = false;
});
希望这有助于编码!