将javascript变量放入数组并执行foreach循环
我在javascript中分配了很多变量,我希望将这些变量存储到数组中,并像javascript中的foreach一样执行循环。我该怎么做将javascript变量放入数组并执行foreach循环,javascript,arrays,loops,jquery,Javascript,Arrays,Loops,Jquery,我在javascript中分配了很多变量,我希望将这些变量存储到数组中,并像javascript中的foreach一样执行循环。我该怎么做 var name=document.forms["form"]["name"].value; var email=document.forms["form"]["email"].value; var mobile=document.forms["form"]["mobile"].value; var q1=document.forms
var name=document.forms["form"]["name"].value;
var email=document.forms["form"]["email"].value;
var mobile=document.forms["form"]["mobile"].value;
var q1=document.forms["form"]["q1"].value;
var q2=document.forms["form"]["q2"].value;
var q3=document.forms["form"]["q3"].value;
var l1=document.forms["form"]["logo1"].value;
var l2=document.forms["form"]["logo2"].value;
var l3=document.forms["form"]["logo3"].value;
var p1=document.forms["form"]["photo1"].value;
var p2=document.forms["form"]["photo2"].value;
var p3=document.forms["form"]["photo3"].value;
if ( name == "" ) {
alert("Please fill up all field to submit!");
$('#name_error').css({'display': 'block'});
return false;
} else if ( email == "" ) {
alert("Please fill up all field to submit!");
$('#email_error').css({'display': 'block'});
return false;
}
var a=1;
var all=新数组();
对于(i=0;i我创建了一个小提琴来演示如何操作:
HTML:
<form name="form">
<input type="text" name="name"/>
<input type="text" name="email"/>
<input type="text" name="mobile"/>
</form>
for (var i = 0; i < document.forms["form"].length;i++) {
if (document.forms["form"][i].value == "")
alert(document.forms["form"][i].name + " is empty!");
}
JS:
<form name="form">
<input type="text" name="name"/>
<input type="text" name="email"/>
<input type="text" name="mobile"/>
</form>
for (var i = 0; i < document.forms["form"].length;i++) {
if (document.forms["form"][i].value == "")
alert(document.forms["form"][i].name + " is empty!");
}
for(var i=0;i
基本上,您可以单步遍历所有元素并查询它们是否为空。这可能会满足您的需要
var array = [];
array.push({ name: "name", value: document.forms["form"]["name"].value});
array.push({ name: "email", value: document.forms["form"]["email"].value});
array.push({ name: "mobile", value: document.forms["form"]["mobile"].value});
// add other values here ...
array.forEach(function (obj) {
if (obj.value == "") {
alert("Please fill up all field to submit!");
$("#" + obj.name + "_error").css({ "display": "block" });
return false;
}
});
不幸的是,除了在数组中存储元素的值之外,我们还需要存储元素的名称,这样我们就可以为它访问正确的错误元素
您可以查看一下以进行验证
编辑:
编辑2:
根据雷内的评论:
如果函数返回false,则不应该有submit。
希望这次我一切都好;)
这将创建一个可以循环的对象
var values = {
name: document.forms["form"]["name"].value,
email: document.forms["form"]["email"].value,
mobile: document.forms["form"]["mobile"].value,
q1: document.forms["form"]["q1"].value,
q2: document.forms["form"]["q2"].value,
q3: document.forms["form"]["q3"].value,
l1: document.forms["form"]["logo1"].value,
l2: document.forms["form"]["logo2"].value,
l3: document.forms["form"]["logo3"].value,
p1: document.forms["form"]["photo1"].value,
p2: document.forms["form"]["photo2"].value,
p3: document.forms["form"]["photo3"].value
};
for ( var item in values ) {
console.log( item + ': ' + values[ item ];
// do something
}
if ( values.email === '' ) {
// conditional use here
}
你应该使用jquery的验证插件,因为你已经在使用jquery了。对不起,我不明白你的意思你是我的阳光(你不是我的阳光:P)。。你没有得到什么部分?嗨,这段代码几乎就在那里了,但是$(“#”+name+“_error”).css({“display”:“block”});在不显示错误消息的位置不工作。其他的工作很好!谢谢,我想我找到我的错误了。我将“name”改为“obj.name”。您好,谢谢,但我发现,在它返回后,我确实显示了我的错误消息,但它刷新了,您能看到我的代码中有什么错误吗?请刷新页面?我现在也在检查…我可以看一下,但我想我需要你的整个功能。您可能会在单击一个按钮后进行验证,然后发送一个post?您必须将false存储在变量中并返回该变量。返回false您现在拥有的代码被数组使用。forEach
var values = {
name: document.forms["form"]["name"].value,
email: document.forms["form"]["email"].value,
mobile: document.forms["form"]["mobile"].value,
q1: document.forms["form"]["q1"].value,
q2: document.forms["form"]["q2"].value,
q3: document.forms["form"]["q3"].value,
l1: document.forms["form"]["logo1"].value,
l2: document.forms["form"]["logo2"].value,
l3: document.forms["form"]["logo3"].value,
p1: document.forms["form"]["photo1"].value,
p2: document.forms["form"]["photo2"].value,
p3: document.forms["form"]["photo3"].value
};
for ( var item in values ) {
console.log( item + ': ' + values[ item ];
// do something
}
if ( values.email === '' ) {
// conditional use here
}