2017-06-15 8 views
0

以下はjavascriptのcode.iです。フォームデータの検証中です。条件を正しく確認してからすべての警告を非表示にします。 falseですが、その関数はfalseを返していません。 コード:検証がOKだった場合はright()を呼び出すところあなたの関数は(trueを返さないjavascript関数の戻り値がhtmlフォームの有効性確認

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

あなたが関数の戻り値をキャプチャしているのであれば、あなたは同じように扱われるundefinedを取得しますfalseとして(https://developer.mozilla.org/en-US/docs/Glossary/Falsyを参照)。

right()を呼び出した後trueを返してみてください。

をあなたはこの例では見ることができる検証は、を通過したにもかかわらず、このため、がまだ印刷されています。

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 **はユーザーがフルネームを入力する入力フィールド値です。 –

関連する問題