我有 html 和 js 代碼,運行它不會在控制臺中顯示錯誤。
我所有的 if 陳述句都是獨立作業的,但是當我將它們全部放在函式中時,我無法讓它們全部作業。
function validate()
{
var a = document.getElementById("name").value;
var letters = /^[A-Za-z] $/;
if(a=="")
{
document.getElementById("errName").innerHTML = "Please enter your full name!";
return false;
}
else if ((!a=="")&&(!a.match(letters)))
{
document.getElementById("errName").innerHTML = "Not valid!";
return false;
}
else
{
document.getElementById("errName").innerHTML = "OK!";
return true;
}
var b = document.getElementById("regno").value;
var Number = /^[0-9] $/;
var iChars = "!`@#$%^&*() =-[]\\\';,./{}|\":<>?~_";
if(b=="")
{
document.getElementById("errRegNo").innerHTML = "Please enter your contact number!";
return false;
}
else if (!b.match(Number) && !b.match(iChars))
{
document.getElementById("errRegNo").innerHTML = "Not valid!";
return false;
}
else if(b.match(Number) || b.match(iChars))
{
document.getElementById("errRegNo").innerHTML = "OK!";
return true;
}
var c = document.getElementById("email").value;
var mailformat = /^\w ([\.-]?\w )*@\w ([\.-]?\w )*(\.\w{2,3}) $/;
if(c=="")
{
document.getElementById("errEmail").innerHTML = "Please enter your contact number!";
return false;
}
else if ((!c=="")&&(c.match(mailformat)))
{
document.getElementById("errEmail").innerHTML = "Not valid!";
return false;
}
else
{
document.getElementById("errEmail").innerHTML = "OK!";
return true;
}
var d = document.getElementById("uid").value;
if(d=="")
{
document.getElementById("errUid").innerHTML = "Please enter your user id!";
return false;
}
else if (!d=="")
{
document.getElementById("errUid").innerHTML = "OK!";
return true;
}
var e = document.getElementById("password").value;
var f = document.getElementById("confirm").value;
if(e=="")
{
document.getElementById("errPassword").innerHTML = "Please enter your password!";
return false;
}
else if (!e==f)
{
document.getElementById("errPassword").innerHTML = "Not valid!";
return true;
}
else
{
document.getElementById("errPassword").innerHTML = "OK!";
return true;
}
if(f=="")
{
document.getElementById("errPassword").innerHTML = "Please confirm your password!";
return false;
}
else if (!f==e)
{
document.getElementById("errPassword").innerHTML = "Not valid!";
return true;
}
else
{
document.getElementById("errPassword").innerHTML = "OK!";
return true;
}
}
uj5u.com熱心網友回復:
嘗試洗掉
回傳真;
并將其添加到函式的末尾。否則,當達到 return true 時,將不會執行以下代碼。試試下面的代碼。
function validate(){
var a = document.getElementById("name").value;
var letters = /^[A-Za-z] $/;
if(a==""){
document.getElementById("errName").innerHTML = "Please enter your full name!";
return false;
}
else if ((!a=="")&&(!a.match(letters))){
document.getElementById("errName").innerHTML = "Not valid!";
return false;
}
else{
document.getElementById("errName").innerHTML = "OK!";
}
var b = document.getElementById("regno").value;
var Number = /^[0-9] $/;
var iChars = "!`@#$%^&*() =-[]\\\';,./{}|\":<>?~_";
if(b==""){
document.getElementById("errRegNo").innerHTML = "Please enter your contact number!";
return false;
}
else if (!b.match(Number) && !b.match(iChars)){
document.getElementById("errRegNo").innerHTML = "Not valid!";
return false;
}
else if(b.match(Number) || b.match(iChars)){
document.getElementById("errRegNo").innerHTML = "OK!";
}
var c = document.getElementById("email").value;
var mailformat = /^\w ([\.-]?\w )*@\w ([\.-]?\w )*(\.\w{2,3}) $/;
if(c==""){
document.getElementById("errEmail").innerHTML = "Please enter your contact number!";
return false;
}
else if ((!c=="")&&(c.match(mailformat))){
document.getElementById("errEmail").innerHTML = "Not valid!";
return false;
}
else{
document.getElementById("errEmail").innerHTML = "OK!";
}
var d = document.getElementById("uid").value;
if(d==""){
document.getElementById("errUid").innerHTML = "Please enter your user id!";
return false;
}
else if (!d==""){
document.getElementById("errUid").innerHTML = "OK!";
}
var e = document.getElementById("password").value;
var f = document.getElementById("confirm").value;
if(e==""){
document.getElementById("errPassword").innerHTML = "Please enter your password!";
return false;
}
else if (!e==f){
document.getElementById("errPassword").innerHTML = "Not valid!";
return false;
}
else{
document.getElementById("errPassword").innerHTML = "OK!";
}
if(f==""){
document.getElementById("errPassword").innerHTML = "Please confirm your password!";
return false;
}
else if (!f==e){
document.getElementById("errPassword").innerHTML = "Not valid!";
return false;
}
else{
document.getElementById("errPassword").innerHTML = "OK!";
}
return true;
}
uj5u.com熱心網友回復:
由于您使用的是return,在任何情況下,如果代碼的起始部分中的條件匹配,它將回傳 true,因此不會執行剩余的代碼。例如:
function validate(){
var a = document.getElementById("name").value;
var letters = /^[A-Za-z] $/;
if(a==""){
document.getElementById("errName").innerHTML = "Please enter your full name!";
//if this condition is matched, it will simply return true and it will exit the function.
return false;
}
else if ((!a=="")&&(!a.match(letters))){
document.getElementById("errName").innerHTML = "Not valid!";
return false;
}
else{
document.getElementById("errName").innerHTML = "OK!";
return true;
}
// this wont be executed.
var b = document.getElementById("regno").value;
var Number = /^[0-9] $/;
var iChars = "!`@#$%^&*() =-[]\\\';,./{}|\":<>?~_"
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/422073.html
標籤:
