以下是我的javascript代码。
我正在验证我在if条件中使用的表单数据。
如果它被正确验证,则隐藏所有警告,如果不显示该字段的警告并返回false。但是这个函数没有返回false。
代码:
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)
如果验证正常(你调用true
,那么你的函数不会返回right()
。所以如果你正在捕获函数的返回值,你将获得{{1} },其处理方式与undefined
相同(请参阅https://developer.mozilla.org/en-US/docs/Glossary/Falsy)。
在致电false
后尝试返回true
。
您可以在此示例中看到,即使验证通过,仍然会打印right()
,因此。
s is not ok
&#13;
但如果你返回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
&#13;