[英]TypeError: Cannot set property '0' of undefined
var fields = ['firstName', 'lastName', 'address', 'postCode', 'email', 'phone', 'dob'];
for (var i=0; i<fields.length; i++) {
if (!$('#'+fields[i]).val()) {
alert('The ' + getFieldTitle(fields[i]) + ' field is required.');
return false;
}
values.fields[i] = $('#'+fields[i]).val();
console.log($('#'+fields[i]).val() , values , fields[i]);
}
在腳本開頭,將值定義為全局變量。 似乎在將適當的名稱分配給數組位置的第一次迭代中,我遇到了失敗。 我記錄的字段名稱似乎正確顯示了什么,但未正確分配給數組值?
編輯:起初省略了字段初始化,對此感到抱歉
如果要包含ID和值的對象:
// set values equal to an empty object
var values={};
var fields = ['firstName', 'lastName', 'address', 'postCode', 'email', 'phone', 'dob'];
for (var i=0; i<fields.length; i++) {
if (!$('#'+fields[i]).val()) {
alert('The ' + getFieldTitle(fields[i]) + ' field is required.');
return false;
}
// Here's the only line you need to change
values[fields[i]] = $('#'+fields[i]).val();
console.log($('#'+fields[i]).val() , values , fields[i]);
}
(values.fields || (values.fields = []))[i] = $('#'+fields[i]).val();
嘗試這個:
var values = {},
i = 0,
l = fields.length;
for (i; i < l; i++) {
var itemId = fields[i],
item = document.getElementById(itemId),
itemValue = item.value;
if (!itemValue) {
alert('The ' + getFieldTitle(item) + ' field is required.');
return false;
}
values[itemId] = itemValue;
}
這里不需要使用jQuery。 僅使用JavaScript,您的解決方案就會更快
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.