Javascript 如何使用复选框检查是否选择了相同性别?

Javascript 如何使用复选框检查是否选择了相同性别?,javascript,jquery,Javascript,Jquery,我在表格的“td”标签内有复选框,如 <td> <input gender="Female" id="5c6434a8590a0654a0002b5a" academicyearid="5b879ec6590a062ba4005fdb" type="checkbox"> </td> <td> &

我在表格的“td”标签内有复选框,如

     <td>    
    <input gender="Female" id="5c6434a8590a0654a0002b5a" academicyearid="5b879ec6590a062ba4005fdb" type="checkbox">
    </td>  
      
    <td>    
    <input gender="Female" id="5c6434a8590a0654a0002b0a" academicyearid="5b879ec6590a062ba4005fdb" type="checkbox">
    </td>    

     <td>    
    <input gender="Male" id="5c6434a8590a0654a0002b04" academicyearid="5b879ec6590a062ba4005fdb" type="checkbox">
    </td>  

基本上,我想当用户点击submit按钮和submit按钮事件时,它会检查选中了哪些复选框,如果它们的性别不同,那么它会显示警告消息,说“只能选择一种性别的学生”。

它看起来像一个单一的if,可以根据好的选择器做你想做的事情

// if there is both male & female checkboxes checked
if ($('input[gender="Male"]:checked').length && $('input[gender="Female"]:checked').length) {

// display alert message

}

还是我在理解您的问题时犯了错误?

对othergender使用const并为其指定预定义的性别

var性别;
性别差异;
$(文档).ready(函数(){
$('.a').change(函数(){
othergender=$(this.val()
$('.a').prop(“已禁用”,true)
})
$('.b').change(函数(){
性别=$(this.attr('gender');
console.log(性别)
如果(性别!=其他性别)//只是一个想法
{
警惕(“只能选择一种性别的学生”);
$(this).prop(“选中”,false);
$('.a').prop(“已禁用”,false)
$('.a').prop(“选中”,false);
其他性别='';
}
})
})

男性
女性


如果可以访问用户性别,为什么不使用jquery添加使用
.prop('checked',true)选中的属性

var-gender='male';
如果(性别==‘男性’){
$(“#输入”).prop(“选中”);
}

检查我
您可以使用以下功能:

var selectedGender;
$('.commoncheckbox input:checked').each(function () {
    var gender = $(this).attr('gender');
    if(selectedGender & selectedGender !== gender) {
       alert("only students of one gender can be selected");
    }
    selectedGender = gender;
});
函数validateGender(){
const uniqGenderSet=新集合();
$('table input:checked')。每个(函数(){
uniqGenderSet.add($(this.attr('gender'));
});
如果(uniqGenderSet.size>1)
警惕(“只能选择一种性别的学生”);
}
$(“按钮”)。单击(函数(){
validateGender();
});
输入[gender=“Female”]{
外形:1px纯红;
}
输入[性别=“男性”]{
外形:1px纯色天蓝;
}



Vaidate
首先,jquery代码永远不会被触发,因为没有名为commoncheckbox的类
othergender?
它只是一个伪代码将更改事件附加到复选框中,触发后,获取其他复选框的性别属性,如果它包含不同的性别,然后弹出警报你到底想做什么?仅选择男性或女性?问题:
$('input[gender=“male”]:checked')
将始终是真实的,因为它返回一个jQuery对象。改为测试长度:
$('input[gender=“Male”]:checked')。长度
,然后获得投票:)我编辑并学习了一件事,我认为它将返回未定义,谢谢:)我想当用户单击提交按钮和提交按钮事件时,它将检查选中了哪些复选框,以及它们的性别是否不同,然后它应该显示警告消息说“只能选择一种性别的学生”@Nida这正是这段代码所做的。最佳答案here@Nida只需将其集成到onSubmit函数中运行代码段,仅检查男性,您会收到拒绝通知,但无法检查。因为变量已设置为女性,如果设置为男性,它将仅选择男性…但我无法选择男性。找到代码不起作用的原因并不能使它起作用:)就是这样。我检查了男性,然后检查了女性,没有问题(这是错误的)。然后我检查了第三个和第四个框(?),没有问题。最后一个给了我一个警告。我真的不明白这个逻辑:)前两个复选框是选择你想要的性别。您可以选择两者。后3个是逻辑适用的地方。如果选择了“男性”,然后尝试从其他3个选项中进行选择,则会得到与上面完全不同的结果question@Deepak他想检查提交上的输入,但他可以检查正确的输入并“选择”它,并在所有输入中添加disable,以避免必须检查submit
var gender='male'中的参数;如果(性别=‘男性’)
??那是什么情况?:)事实上,答案与首字母无关problem@JeremyThille举个例子,我不知道海报的实施情况。问题很清楚。您有三个复选框,两个女性,一个男性;不能选择两个不同性别的复选框。现在你的答案如何解决这个问题?
var selectedGender;
$('.commoncheckbox input:checked').each(function () {
    var gender = $(this).attr('gender');
    if(selectedGender & selectedGender !== gender) {
       alert("only students of one gender can be selected");
    }
    selectedGender = gender;
});