hav*_*heg 1 html javascript forms arrays
我收到一个HTML表单.这在数组中有2个或更多元素时工作正常,但是当只收到一个元素时,我得到错误用户[t]在fireBug中为null?
var users = form.elements["uname[]"];
for(t in users) {
dataString += "User: "+users[t].value+"\n"
}
Run Code Online (Sandbox Code Playgroud)
这解决了它:
if( typeof users.value === 'string' ) {
users = [ users ];
}
Run Code Online (Sandbox Code Playgroud)
我知道这是一个古老的问题,但我在寻找其他东西的过程中绊倒了它.无论如何,我想我会为偶然发现这个的其他人提供另一个答案.
您可以使用Array.prototype.concat(),而不是检查类型以查看它是否是数组,然后可选地将值包含在新数组中.
它的语法是
var new_array = old_array.concat(value1[, value2[, ...[, valueN]]])
Run Code Online (Sandbox Code Playgroud)
其中任何值都可以是数组或单个值.
在您的特定情况下,您可以从一个空数组开始并连接表单输入,无论您获得单个值还是数组,它都将起作用:
var users = [].concat(form.elements["uname[]"]);
Run Code Online (Sandbox Code Playgroud)
要么
users = [].concat(users);
Run Code Online (Sandbox Code Playgroud)