下面是我放在一起验证5个字段的代码,这些字段具有9个字段,这些字段是必需的。我创建了变量并将它们放入一个数组中。从那里我有一个循环遍历此数组的函数,如果该字段留空,则弹出警报。
我遇到的问题是单击按钮时警报不会弹出。
var uName=document.getElementByName('userName');
var pword=document.gelElementByName('password');
var verify=document.getElementByName('passwordVerify');
var fName=document.getElementByName('firstName');
var lName=document.getElementByName('lastName');
var field=[uName,pword,verify,fName,lName];
function validateForm(form) {
for(var i = 0; i < form.field.length; i++){
if(form.field[i].value.length == 0){
alert(form.field[i].name+' is required. Please populate');
form.field[i].focus();
return false;
}
} return true;
}
不确定我做错了什么或导致错误的原因。非常感谢任何帮助。
答案 0 :(得分:1)
function validateForm() {
var uName = document.getElementById('userName');
var pword = document.getElementById('password');
var verify = document.getElementById('passwordVerify');
var fName = document.getElementById('firstName');
var lName = document.getElementById('lastName');
var field = [uName, pword, verify, fName, lName];
for (var i = 0; i < field.length; i++) {
if (!field[i].value) {
alert(field[i].name + ' is required. Please populate');
field[i].focus();
return false;
}
}
return true;
}
&#13;
<form>
<input type="text" id="userName" name="userName" /><br/>
<input type="text" id="password" name="password" /><br/>
<input type="text" id="passwordVerify" name="passwordVerify" /><br/>
<input type="text" id="firstName" name="firstName" /><br/>
<input type="text" id="lastName" name="lastName" /><br/>
<button onclick="validateForm();">Submit</button>
</form>
&#13;
现在,我做了以下更改:
为简单起见,我在整个代码中将getElementByName
更改为getElementById
;
我删除了该功能的参数,并将form.field
更改为field
,因为......好吧,第一个是错误的。
我还将迭代测试更改为!field[i].value
,这相当于测试值是否有长度,但似乎更适合我。
关于我所做的一切,以及在表单元素中添加ID。
P.S:这是我在这里的第一个详细答案,非常感谢您的反馈! :)