我正在努力查看表单中的所有值,但是我一直未定义,然后我的值出现了。我正在动态创建表单,所以我认为未定义可能来自空白字段。
这是我用来获取所有元素的代码:
//try to get all elements
var output;
$(this).parents('form') // For each element, pick the ancestor that's a form tag.
.find(':input') // Find all the input elements under those.
.each(function(i) {
//alert(this.value+ " = " + i);
if (typeof this.value === "undefined") {
output = "nothing here";
} else {
output += this.value;
}
});
$("div#total").append("value = " + output + "<br>");
如果我输入1,2,3,4,5,6,那么我的输出是:
hello value = undefined
value = undefined1
value = undefined1
value = undefined12
value = undefined12
value = undefined123
value = undefined123
value = undefined1234
value = undefined1234
value = undefined12345
value = undefined12345
value = undefined123456
结果是我想要的,除了未定义的部分。我看到了这个答案:JavaScript: undefined !== undefined?并尝试了他们的建议,但如果值未定义,我似乎无法让我的程序保存值。
如果有帮助,请输入完整代码:http://jsfiddle.net/lostsoul/rKLrZ/
答案 0 :(得分:3)
将output
初始化为空字符串。
var output = "";
如果input
没有值,它会为您提供一个空字符串而不是undefined
。
答案 1 :(得分:0)
未初始化的var output
实际上有一个值undefined
。
var output; // Value of output is undefined output += "2"; // undefined + "2" -> "undefined2"