2017-06-15 54 views
0

以下是我的javascript code.i驗證表單數據爲我使用如果conditions.if它得到正確驗證,然後隱藏所有警告,如果不顯示只有警告的該feild並返回false.but該函數不返回false。 代碼:html表單驗證的javascript函數返回值

function check_form() 
{ 
var name=document.signin_form.full_name.value; 
var userid=document.signin_form.userid.value; 
var gender=document.signin_form.gender.value; 
var dob=document.signin_form.dob.value; 
var add=document.signin_form.address.value; 
var pass=document.signin_form.pass.value; 
var tc=document.signin_form.tc.checked; 

if(name!==""&&name.length<30&&name.match(/^[A-Za-z]+$/)) 
{ 
right(); 
} 
else 
{ 
wrong("name"); 
return false; 
} 

} 
function right() 
{ 
$(document).ready(function(){ 
$("#name_warning").css("display","none"); 
$("#userid_warning").css("display","none"); 
$("#gender_warning").css("display","none"); 
$("#dob_warning").css("display","none"); 
$("#address_warning").css("display","none"); 
$("#password_warning").css("display","none"); 
$("#tc_warning").css("display","none"); 
}); 

} 
function wrong(str) 
{ 
str="'#"+str+"_warning'"; 
$(document).ready(function(){ 
$(str).css("display","inline-block"); 
}); 
window.scroll(0,250); 
} 
+0

你有什麼樣的輸入? –

+0

請提供一個[mcve] –

回答

0

你的函數不返回true如果驗證是確定的(你叫right()因此,如果您捕捉函數的返回值,你會得到undefined,這是一視同仁爲false(見https://developer.mozilla.org/en-US/docs/Glossary/Falsy)。

嘗試調用right()後返回true

您可以在這個例子中看到,即使驗證通過,s is not ok仍然打印,出於這個原因。

var s = "abcdef"; 
 
var validate = function(name){ 
 
    if(name!==""&&name.length<30&&name.match(/^[A-Za-z]+$/)){ 
 
    console.log("right"); 
 
    }else{ 
 
    console.log("wrong"); 
 
    return false; 
 
    } 
 
}; 
 

 
if(validate(s)){ 
 
    console.log("s was ok"); 
 
}else{ 
 
    console.log("s was not ok"); 
 
}

但是,如果你回到true,一切按預期工作:

var s = "abcdef"; 
 
var validate = function(name){ 
 
    if(name!==""&&name.length<30&&name.match(/^[A-Za-z]+$/)){ 
 
    console.log("right"); 
 
    return true; 
 
    }else{ 
 
    console.log("wrong"); 
 
    return false; 
 
    } 
 
}; 
 

 
if(validate(s)){ 
 
    console.log("s was ok"); 
 
}else{ 
 
    console.log("s was not ok"); 
 
}

+0

我在右下角添加了返回功能,但不起作用。 –

+0

然後編輯問題並提供更多信息。什麼是'check_form'實際返回? 'name'的價值是什麼?如果需要,使用調試器。 –

+0

這很簡單。 **表單將提交時將執行check_form **並返回一個值。 ** name **是用戶輸入全名的輸入字段值。 –