使用javascript.prop在两个单选按钮之间进行检查(';选中';);

使用javascript.prop在两个单选按钮之间进行检查(';选中';);,javascript,php,jquery,Javascript,Php,Jquery,我有这两个单选按钮,我正在检查其中一个是否用下面的javascript检查。当我键入这个问题时,我意识到我的脚本只检查是否选中了特定的单选按钮。如何检查以验证两个选项中的一个是否已检查 jQuery(“.GenderM1”)。每个(函数(){ var isChecked=jQuery(this).prop('checked'); 如果(isChecked==false){ e、 预防默认值(); pass=“false”; 警告(“请选择性别”); 返回false; } }); id=“ma

我有这两个单选按钮,我正在检查其中一个是否用下面的javascript检查。当我键入这个问题时,我意识到我的脚本只检查是否选中了特定的单选按钮。如何检查以验证两个选项中的一个是否已检查

jQuery(“.GenderM1”)。每个(函数(){
var isChecked=jQuery(this).prop('checked');
如果(isChecked==false){
e、 预防默认值();
pass=“false”;
警告(“请选择性别”);
返回false;
}
});

id=“maleradio”class=“GenderM1”value=“0”必填项>M

id=“female\u redio”class=“GenderM1”value=“1”必需>F
您的代码

jQuery(".GenderM1").each(function() {
  var isChecked = jQuery(this).prop('checked');
  if (isChecked == false) {
    e.preventDefault();
    pass = "false";
    alert("Please select gender.");
    return false;
  }
});
如果要将布尔变量与布尔值进行比较,请直接使用它:

isChecked == false// Use !isChecked
          ^
您使用的是一个未声明的
e
,可能是
。每个
接收一个事件

e.preventDefault();
^
主要问题是您的循环比较每个radiobutton.checked属性,您需要检查是否至少有一个,然后检查以停止循环

此代码片段显示如何检查是否选中了单选按钮:

var isChecked=false;
jQuery(“.GenderM1”).each(函数(){
isChecked=isChecked | | jQuery(this).is(':checked');
如果(已检查)
返回false;
});
如果(!已检查){
var pass=“false”;
警告(“请选择性别”);
}

M

F
自jQuery 1.6以来,method.prop()可用,在以前的版本中,您必须使用method.attr()方法

你使用哪个版本

我仍然认为,你想要做的是,如果你没有选择一个显示错误的类型,并且使用你的代码,它将不会很好地工作。为此,您必须执行以下操作:

1-将其中一个标记为默认选中,也就是说,将其建立为默认选中状态,这样就消除了不标记错误的可能性。 2-修改您执行的验证,否则它将始终返回false,因为只有一个将被选中,并且您将遍历整个单选按钮排列,因此当您到达未选中的单选按钮时,它将返回false

    if ($('input[class="GenderM1"]').is(':checked')) {
        // do something;
    } else {
        //do another thing;
    }
if($('.GenderM1:checked').length==1)
或仅
if($('.GenderM1:checked').length)