2012-03-17 67 views
0

我正在製作一個表單到一個字符串,因此,使用2個數組,我將所需的變量傳遞給正在按下的提交按鈕上的一個函數(名稱表單元素和變量名稱)。製作一個沒有eval()對應數組的動態變量

但是我使用的是eval(),這並不好,但是我還不夠好,無法在對象或數組中修復它。

我真正的問題(儘管任何洞察力讚賞)是這樣的:當一個單選按鈕對應的文本框被選中時,我如何獲取它來引用數組並更改從數組中更改的變量?

舉例來說,如果我有一個數組:

var examplearray = 
[ 
    "foo" 
] 

然後將文本框的的onblur =

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

如何更改maritalvarfoo

如果可能的話可以將其搜索fo得到foo,使其不破,如果我之前增加一個元素(假設使用的examplearray[0])?

+0

哇,我不明白的事...你可以張貼的jsfiddle或什麼? – elclanrs 2012-03-17 21:25:36

回答

3

不要使用動態變量,請在對象中使用屬性。

例子:

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 
}; 
+0

我可以按照腳本使用這個,所以我可以做所有形式的檢測(如與複選框);真的如何得到一個函數來返回一個可以接受的值? – JZL003 2012-03-17 21:47:02

相關問題