我有一个 javscript 函数,我需要检查是否选中了任何单选按钮。我正在使用 id 属性。
<s:radio id="gender" name="bean.gender" list="#{'male':'male','female':'female'}"/>
在 javascript 中我会这样检查:
if (radVal(document.forms[0].gender) == "") {
alert("enter gender");
document.forms[0].gender[0].focus();
return false;
}
function radVal(radName) {
var radioVal = "";
for (var i = 0; i < radName.length; i++) {
if (radName[i].checked) {
radioVal = radName[i].value;
}
}
return radioVal;
}
并且在运行时我看到 id 为“gendermale”和“genderfemale”,因此无法获取正确的 id。
最佳答案
自从每 id
页面中的内容必须是唯一的,并且 <s:radio>
标签正在生成多个 HTML 标签,它正在生成多个 id
s;
然而,真正的错误是您循环遍历单选按钮,就像它们是复选框一样,但它们不是。
单选按钮仅允许一种选择。
按名称获取元素并读取值,以获取选定的元素,如果未选择,则为空。
通常您可以使用点符号 ( .
)
document.forms[0].bean.gender.value
但是由于您的名字中有一个点,因此您必须使用其他语法( [""]
):
document.forms[0]["bean.gender"].value
关于javascript - struts2单选按钮id属性值动态变化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33895244/