比较2个输入无线电值

时间:2014-05-19 09:45:26

标签: javascript

我只是想检查用户是否选择了性别,如果没有,则应显示提醒/代码执行,因此,在我的HTML中我会这样做:

<label>Anrede:</label>
<input type="radio" id="sexMale" name="gender" value="Herr">
<label for="sexMale">Herr</label>
<input type="radio" id="sexFemale" name="gender" value="Frau">
<label for="sexFemale">Frau</label>

在我的JS中:

var sexM = document.getElementById("sexMale").value;
var sexF = document.getElementById("sexFemale").value;

... 

我很困惑,因为如果没有选中任何输入字段,则返回false。 如果检查了一个,它会吐出正确的选择字段,

但是当我只是想像这样比较它们时,没有任何反应:

if(sexM === false && sexF === false){
    // Some Action here e.g:
    document.getElementById('').innerHTML = "Please choose a gender";
}

由于这是一个包含20多个输入字段的表单(表单来声明产品),我不能使用以下内容:

input[type="radio"]:checked

我知道它必定是某种类型/比较问题。我已经尝试了所有选项来比较这两个值(例如=== false,!== true等) - 似乎没有效果。

只需要一点提示,谢谢

2 个答案:

答案 0 :(得分:0)

尝试$('input[name="gender"]:checked').length==0

选中此http://jsfiddle.net/aamir/Wv68T/2/

和此演示http://jsfiddle.net/aamir/Wv68T/

答案 1 :(得分:0)

我认为您正在寻找验证单选按钮。所以你可以试试这个

var radios = document.getElementsByName("gender");
var formValid = false;

var i = 0;
while (!formValid && i < radios.length) {
    if (radios[i].checked) {
        formValid = true;
        console.log(radios[i].value);
    }
    i++;
}

if (!formValid) document.getElementById('error').innerHTML = "Please choose a gender";
return formValid;

Fiddle Demo