我正在尝试使用此代码:
var field="myField";
vals[x]=document.myForm.field.value;
在html代码中我有
<form name="myForm">
<input type='radio' name='myField' value='123' /> 123
<input type='radio' name='myField' value='xyz' /> xyz
</form>
但这给了我错误:
document.myForm.field is undefined
如何将field
视为变量而不是字段?
答案 0 :(得分:7)
假设你的其他语法是正确的(我没有检查过),这会做你想要的:
var field="myField";
vals[x]=document.myForm[field].value;
在JS中,括号运算符是按名称获取属性的访问器。您可以阅读更多相关信息here。
答案 1 :(得分:3)
使用elements [] collection
document.forms['myForm'].elements[field]
elements collection in DOM spec
顺便说一句。如果您有两个具有相同名称的字段,要获取任何字段的值,您必须阅读:
var value = document.forms['myForm'].elements[field][index_of_field].value
例如
var value = document.forms['myForm'].elements[field][0].value
并且,如果您想获得所选单选按钮的值,您必须检查选择了哪一个
var e = document.forms['myForm'].elements[field];
var val = e[0].checked ? e[0].value : e[1].checked ? e[1].value : null;
答案 2 :(得分:2)
你必须这样做:
var field = "myField";
vals[x] = document.myForm[field].value;
甚至
vals[x] = document.forms.myForm.elements[field].value;
答案 3 :(得分:0)
根据你的标签,似乎你正在使用jQuery。如果是这样,你可以这样做,它会让你的生活更轻松:
var vals = new Array();
$("form[name='myForm'] :radio").each(function() {
vals.push($(this).val());
});
: - d