【发布时间】:2018-10-25 00:41:40
【问题描述】:
我正在制作一个程序,其中所有文本框都通过 CSS 转换为大写。在我的 Javascript 中,我也想将其传递给具有与 UPPERCASE 相同的值的服务器。但是,我遇到了一个错误:
“未捕获的类型错误:无法读取未定义的属性 'toUpperCase'”
我已经尝试过来自不同 StackOverFlow 用户的不同解决方案,例如 Uncaught TypeError: Cannot read property 'toUpperCase' of undefined,但仍然出错。
这是我的代码:
// put all gathered data in an array variable so as to send to the server for saving
var param = new Array();
param[0] = clientType;
param[1] = catv_provider;
param[2] = existing_subs;
param[3] = gender;
param[4] = lastname;
param[5] = firstname;
param[6] = midname;
var param2 = [];
for (var i = 0; i < param.length; i++) {
param2[i] = param[i].toUpperCase();
}
【问题讨论】:
-
数组中的一个值为空/未定义。我建议在循环中使用
console.log来找出哪个。此外,无需为大写值创建新数组。 -
另外,请在创建 sn-p 时添加相关 HTML 并删除 minimal reproducible example 中的不相关代码
-
考虑将所有 ID 放入一个数组中,然后循环遍历该数组(使用
map)以获取它们的值,然后将它们转换为大写。 -
最有可能的值之一是
null或不同于字符串的类型,因为我看到了潜在的non-string value,例如preffered_date
标签: javascript jquery arrays