使用Javascript根据组中的值选中或取消选中复选框

时间:2015-03-19 15:19:59

标签: javascript jquery checkbox

我是Javascript的新手并且对JQuery一无所知,所以我现在为我的新手状态道歉。

我有一个复选框(最多18个),它们具有相同的名称和类(不能改变这个事实):

<input type="checkbox" name="elective_id[]" value="112" class="elective_id">
<input type="checkbox" name="elective_id[]" value="128" class="elective_id">
<input type="checkbox" name="elective_id[]" value="135" class="elective_id">
<input type="checkbox" name="elective_id[]" value="322" class="elective_id" onClick="checkSister(322);">
<input type="checkbox" name="elective_id[]" value="323" class="elective_id" onClick="checkSister(323);">

在该数组中,将有3对复选框,在选中/取消选中对时,需要选中/取消选中对应的复选框。三对是320,321&amp; 322,323&amp; 345346。

如果选中了值为322的复选框,我该如何自动选择该对?

function checkSister(brother) {
 if (brother=="322") {
  document.getElementById("322").checked = true;        
  document.getElementById("323").checked = true;
 } else if (brother=="322") {
  document.getElementById("322").checked = true;        
  document.getElementById("323").checked = true;
 }
}

我知道这是不对的,但还没弄清楚如何选择正确的变量,更不用说取消选择。

非常感谢您提供的任何帮助, 吉姆

2 个答案:

答案 0 :(得分:1)

使用querySelectorAll

,无需jquery即可轻松完成
document.querySelectorAll("input[type='checkbox'][value='112']")[0].checked=true;

或者您可以按名称和值进行查询:

document.querySelectorAll("input[name='elective_id[]'][value='112']")[0].checked=false;

答案 1 :(得分:0)

将该vanilla JavaScript转换为jQuery,

function checkSister(brother) {
    if (brother=="322") {
      $("#322").prop("checked") = true;        
      $("#323").prop("checked") = true;  
 } else if (brother=="322") {
      $("#322").prop("checked") = true;     
      $("#323").prop("checked") = true;  
     }
}
相关问题