<html>
<head>
<script>
function registerform(){
var fullnameExp = /^[a-zA-Z]+$/;
var firstname= document.getElementById('firstname');
var lastname= document.getElementById('lastname');
if(firstname.value.match(fullnameExp)){
}else{
document.getElementById("errorname").innerHTML="[Please type in alphabets only!]";
return false;
}
if(lastname.value.match(fullnameExp)){
}else{
document.getElementById("errorname").innerHTML="[Please type in alphabets only!]";
return false;
}
return true;
}
</script>
</head>
<form method="post" onSubmit = "return registerform();">
<input type='text' id='firstname' size="50" />
<span id="errorname"></span><br>
<input type='text' id='lastname' size="50" />
<span id="errorname"></span><br>
<input type= "Submit" value="Submit" />
</form>
<body>
</body>
</html>
我试图在这里做的是验证我的名字和姓氏,但是代码只显示第一个名字的错误。为什么返回工作?我错误地使用了return false。可以帮助和解释一下
答案 0 :(得分:2)
return语句结束方法..所以你可以将valdiation信息存储在变量中并返回它
function registerform(){
var fullnameExp = /^[a-zA-Z]+$/;
var firstname= document.getElementById('firstname');
var lastname= document.getElementById('lastname');
var isValid =true;
if(firstname.value.match(fullnameExp)){
}else{
document.getElementById("errorname").innerHTML="[Please type in alphabets only!]";
isValid= false;
}
if(lastname.value.match(fullnameExp)){
}else{
document.getElementById("errorname").innerHTML="[Please type in alphabets only!]";
isValid = false;
}
return isValid;
}
答案 1 :(得分:0)
else{
document.getElementById("errorname").innerHTML="[Please type in alphabets only!]";
var firstnamevalid = false;
}
if(lastname.value.match(fullnameExp)){}
else{
document.getElementById("errorname").innerHTML="[Please type in alphabets only!]";
var lastnamevalid = false;
}
if (!firstnamevalid|| !lastnamevalid)
return false;
return true;
像这样的事情会做你想要的我相信的事情。
基本上正如上面提到的那个人提到的那样,如果方法返回一些内容,在代码中使用return语句会立即退出该方法。这样做的目的是保存您的名字和姓氏验证,然后检查是否有一个是假的。如果是,那么你返回false,如果它们都是真的那么你就可以返回true。