创建一个没有与数组对应的eval()的动态变量

时间:2012-03-17 21:11:40

标签: javascript jquery arrays forms

我正在为一个字符串创建一个表单,因此,使用2个数组,我将所需的变量传递给按下的提交按钮上的函数(表单元素的名称和变量名称)。

但我正在使用eval(),这不是很好,但我对对象或数组不够好以修复它。

我真正的问题(虽然有任何见解得到赞赏)是:当检查对应于单选按钮的文本框时,如何让它引用数组并更改从数组中更改的变量?

例如,如果我有一个数组:

var examplearray = 
[
   "foo"
]

textbox =

的onblur
maritalvar = document.getElementById('othermaritaltxt').value

如何将maritalvar更改为foo

如果可能,它可以搜索fo以获取foo,以便在我之前添加元素时它不会中断(假设使用examplearray[0])?

1 个答案:

答案 0 :(得分:4)

不要使用动态变量,在对象中使用属性。

示例:

var formData = {};
var fields = [ 'FirstName', 'LastName', 'Age' ];
for (var i = 0; i < fields.length; i++) {
  var name = fields[i];
  formData[name] = document.getElementById(name).value;
}

现在formData对象有三个属性,就像你做的那样:

var formdata = {
  'FirstName': document.getElementById('FirstName').value,
  'LastName': document.getElementById('LastName').value,
  'Age': document.getElementById('Age').value
};