Создайте динамическую переменную без eval (), соответствующую массиву - PullRequest
0 голосов
/ 18 марта 2012

Я создаю форму для строки, и поэтому, используя 2 массива, я передаю необходимые переменные функции нажатой кнопки отправки (имя элемента формы и имя переменной).

Но я использую eval(), что нехорошо, но я не достаточно хорош для объектов или массивов, чтобы это исправить.

Мой реальный вопрос (хотя любая оценка приветствуется) заключается в следующем: когда проверяется текстовое поле, соответствующее переключателю, как мне заставить его ссылаться на массив и изменять переменную, которая изменяется из массива?

Например, если у меня есть массив:

var examplearray = 
[
   "foo"
]

И onblur текстового поля =

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

Как мне изменить maritalvar на foo?

Если возможно, он может найти fo чтобы получить foo, чтобы он не сломался, если я добавлю элемент перед ним (при условии использования examplearray[0])?

1 Ответ

4 голосов
/ 18 марта 2012

Не используйте динамические переменные, используйте свойства в объекте.

Пример:

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
};
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...