我使用struts2创建了一个单选按钮小部件。我想使用javascript函数检索选定的单选按钮值。请帮我。以下代码仅检索第一个元素。
function getAddress()
{
var add=document.getElementById("add").value;
alert(add);
window.opener.setAddress(add);
window.close();
return true;
}
</script>
<body>
<s:action name="Address" id="addlist"/>
<s:radio label="Address" name="add" list="employeeDetail.addlist">
<br>
</s:radio>
<input type="button" name="nextButton" id="nextButton" value="Select"
onclick="javascript:getAddress();" />
</body>
</html>
答案 0 :(得分:1)
您已将单选按钮名称指定为“添加”但在使用javascript访问时,您尝试通过ID访问它,即
document.getElementById("add");
将document.getElementById("add")
更改为document.getElementByName("add")
或者你也可以给单选按钮一个id作为“添加”,然后使用相同的代码;
即,按如下方式添加id并更改name属性的值。
id="add" name="addValue"
。
我认为这会奏效。
答案 1 :(得分:0)
你给无线电元素命名为“add”,你需要用id =“add”替换它或者同时使用两者 - 因为你试图通过id获取元素并且它当前没有id。
编辑-------- 看到呈现的HTML似乎通过名称获取元素值将更适合getElementsByName(“add”)
答案 2 :(得分:0)
创建函数getSelectedRadioValue
并使用无线电组名称调用该函数。
function getAddress()
{
var add=getSelectedRadioGroupValue("add");
alert(add);
}
//Method to return radio group value. default 0
function getSelectedRadioGroupValue(name){
var radioGrArr = document.getElementsByName(name);
var value = '0';
for (var i=0; i < radioGrArr .length; i++) {
if (radioGrArr [i].checked == true) {
value = radioGrArr [i].value;
break;
}
}
return value;
}