JavaScript在IE和FireFox中读取单选按钮值

Mat*_*t H 3 html javascript forms radio-button

我有一个简单的Web表单,它使用JavaScript来构建POST语句.在Chrome中,我可以使用一行简单的代码......

var form = document.forms['myForm'];
var env = form.env.value;
Run Code Online (Sandbox Code Playgroud)

表单本身看起来像这样......

<form name="myForm" action='JavaScript:xmlhttpPost("/path/to/some/pythoncode.py")'>
    <input type="radio" name="env" id="env" value="inside">Inside
    <input type="radio" name="env" id="env" value="outside" checked="checked">Outside
    <input type="radio" name="env" id="env" value="both">Both
    <input type="radio" name="env" id="env" value="neither">Neither
Run Code Online (Sandbox Code Playgroud)

我在窗体上的一些文本框,我可以使用同样的方法来查找值( var name = form.fname.value<input type="text" name="fname" id="fname"> 然而,当我提交表单,并建立我的职务,单选按钮值始终是不确定的.它工作正常,在Chrome中,但在IE或FireFox中没有任何内容.

我试过var env = document.getElementById('env').value,但由于某种原因,无论我选择什么,总是默认为第一个值(内部).使用Chrome时,该方法也不会返回值.

在FF或IE中读取无线电输入的选中值时,我是否缺少某些东西?

小智 6

试试这个

function getValueFromRadioButton(name) {
   //Get all elements with the name
   var buttons = document.getElementsByName(name);
   for(var i = 0; i < buttons.length; i++) {
      //Check if button is checked
      var button = buttons[i];
      if(button.checked) {
         //Return value
         return button.value;
      }
   }
   //No radio button is selected. 
   return null;
}
Run Code Online (Sandbox Code Playgroud)

ID是唯一的,因此您不应对多个项目使用相同的ID.如果使用此功能,则可以删除所有单选按钮ID.