2

如何检查字段是否为单选按钮?

我试过if(document.FORMNAME.FIELDNAME.type =='radio')但 document.FORMNAME.FIELDNAME.type 返回未定义。

页面上的html是 <input name="FIELDNAME" type="radio" value="1" > <input name="FIELDNAME" type="radio" value="0" >

除非我把整个方法都弄错了。我的目标是获取输入字段的值,但有时该字段是单选按钮,有时是隐藏字段或文本字段。

谢谢。

4

3 回答 3

5

您的示例不起作用,因为document.FORMNAME.FIELDNAME实际上是一个包含 2 个元素的数组(因为您在表单上有 2 个输入具有该名称)。写作if(document.FORMNAME.FIELDNAME[0].type =='radio')会奏效。

编辑:请注意,如果您不知道 document.FORMNAME.FIELDNAME 是否是收音机(即您可能有一个 text/textarea/other),最好先测试 document.FORMNAME.FIELDNAME 是否是一个数组,然后如果它的第一个元素的类型是“收音机”。就像是if((document.FORMNAME.FIELDNAME.length && document.FORMNAME.FIELDNAME[0].type =='radio') || document.FORMNAME.FIELDNAME.type =='radio')

于 2013-01-30T16:24:02.643 回答
3

如果您没有表格,则可以选择按属性。

var elements = document.getElementsByName('nameOfMyRadiobuttons');

elements.forEach(function (item, index) {

  if (item.getAttribute("type") == 'radio') {
      var message = "Found radiobutton with value " + item.value;

      if(item.checked) {
         message += " and it is checked!"
      }

      alert(message);
   }

});
于 2018-01-11T14:51:50.047 回答
2

您的代码应该可以工作,但您可以尝试以下操作:

document.getElementById('idofinput').type == 'radio'

编辑:由于 mihaimm 上面提到的原因,您的代码不起作用

于 2013-01-30T16:18:35.027 回答