Struts找到已检查的单选按钮

时间:2014-04-05 21:26:11

标签: javascript struts2 radio-button struts

我在struts中创建了一个单选按钮但是我看到单选按钮接受了一个列表,所以我提供了一个列表{true:'Yes',false:'No'}。这会创建一个带有Yes和No标签的单选按钮对,但是我想使用javascript来获取已选中的单选按钮。

创建单选按钮后,他们会向'名称' true ' name' false 。我很困惑如何使用javascript来获取选中的单选按钮及其值。以下是我的代码:

Struts单选按钮

<s:radio name="over18" id= "over18Stat" list="#{true:'Yes',false:'No'}" 
                onclick="Over18Changed(this.value)"/>

的Javascript

我已经尝试了这个但它不起作用

var ofage = document.getElementByName('over18').value ;

1 个答案:

答案 0 :(得分:1)

getElementsByTagName是复数,因为它返回与给定名称匹配的元素的NodeList(可能为空)。

要获取所选按钮,请遍历NodeList(我已将其转换为函数):

function getCheckedButton(name) {
  var buttons = document.getElementsByName(name);

  for (var i=0; i<buttons.length; i++) {

  if (buttons[i].checked) {
    return buttons[i];
  }
}

如果您只想要按钮的值:

 return buttons[i].value

您也可以使用querySelector:

function getCheckedValue(name) {
  var button =  document.querySelector('input[name=' + name + ']:checked');
  return button && button.value;
}

但是,所有正在使用的浏览器都不支持querySelector,并且所有支持querySelector的浏览器都不支持复杂的选择器。