如何在Javascript中解析变量

时间:2009-05-05 15:06:25

标签: javascript jquery

我正在尝试使用此代码:

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视为变量而不是字段?

4 个答案:

答案 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