struts2 单选按钮 id 属性值正在动态变化

struts2 radio button id attribute value is changing dynamically

我有一个 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

但是,真正的错误是您在单选按钮之间循环,就好像它们是复选框一样,而实际上它们不是。

单选按钮只允许一个选择

按名称获取元素并读取值,以获取选定的元素,如果选择了 none,则为空。

通常你可以使用点符号 (.)

document.forms[0].bean.gender.value

但由于您的名字中有一个点,您必须使用其他语法 ([""]):

document.forms[0]["bean.gender"].value