Javascript表单验证只工作一次



脚本:时事通讯Script.js

function formValidation() {
var fname = document.getElementById('firstName').value;
var lname = document.getElementById('lastName').value;
var pnumber = document.getElementById('phoneNumber').value;
var email = document.getElementById('e-mail').value;
if (FirstName(fname)) {
}
if (LastName(lname)) {
}
if (Country(country)) {
}
if (Email(email)) {
}
return false;
}
/*first name input validation*/
function FirstName(fname) {
var message = document.getElementsByClassName("error-message");
var letters = /^[A-Za-z]+$/;
if ( fname =="" || fname.match(letters)) {
text="";
message[0].innerHTML = text;
return true;
}
else {
text="First name should contain only letters";
message[0].innerHTML = text;
return false;
}
}
/*last name input validation*/
function  LastName(lname) {
var message = document.getElementsByClassName("error-message");
var letters = /^[A-Za-z]+$/;
if ( lname =="" || lname.match(letters)) {
text="";
message[1].innerHTML = text;
return true;
}
else {
text="Last name should contain only letters";
message[1].innerHTML = text;
return false;
}
}

我正试图让这个验证循环,直到满足条件,目前这只起作用一次,如果再次单击按钮,它将提交。下面的按钮。

由于脚本太长了,它不允许我上传所有内容,但它刚刚得到了其他验证,如电话号码等。任何帮助都将不胜感激,干杯!

如果您想要的是formValidation()只有在四个验证函数返回true时才返回true,那么您应该编写它,而不是放入空的If语句:

return FirstName(fname) && LastName(lname) && Country(country) && Email(email);

这样,如果其中一个返回错误,则formValidation()将返回错误

您应该考虑在提交按钮的onclick上使用formonsubmit

代替:

<input class="button" type="submit" value="Submit" name="submit" onClick="formValidation()" />

考虑使用表单submit,不要忘记return关键字:

<form onsubmit="return formValidation();" > /* ... */ </form>

相关问题:HTML表单操作和提交问题

相关内容

  • 没有找到相关文章

最新更新