警报电台输入表格

时间:2018-01-17 19:28:39

标签: javascript html html5 forms

当我要求用户写下他们是否愿意吃饭时,我正在尝试写一个表格。然而,无论他们回答什么,答案都会出现"是"。这段代码有什么问题?

values.yaml

2 个答案:

答案 0 :(得分:1)

您错过了name属性,这对于对单选按钮进行分组是必要的:

<input type="radio" name="validate" value="yes">Yes<br>
<input type="radio" name="validate" value="no">No<br>

id必须是唯一的,用这个修复JavaScript函数,结果将是下一个(作为André的答案):

function eatFood() {
  var radios = document.getElementsByName('validate');

  for (var i = 0, length = radios.length; i < length; i++)
  {
     if (radios[i].checked)
     {
       alert(radios[i].value);
       break;
     }
  }
}

答案 1 :(得分:0)

以下是使用JavaScript获取无线电输入值的最简单方法:

function eatFood() {
    var choice = document.querySelector('input[name = validate]:checked').value;
    alert(choice);
}

工作演示:https://codepen.io/andreds/pen/ppQzeL

以下是第二种方式:

function eatFood() {
var radios = document.getElementsByName('validate');

  for (var i = 0, length = radios.length; i < length; i++)
  {
   if (radios[i].checked)
   {
     alert(radios[i].value);
     break;
   }
  }
}

第二种工作演示:https://codepen.io/andreds/pen/XVyrJB

如果您只有两个无线电输入,则第三种方式

function eatFood() {
  if (document.getElementById('yes').checked) {
    result = document.getElementById('yes').value;
  }
  if (document.getElementById('no').checked) {
    result = document.getElementById('no').value;
  }
  alert(result);
}

第三种工作演示:https://codepen.io/andreds/pen/KZrPVy