2016-06-29 2 views
1

validate関数がfalseを返した場合、jsの実行を停止しようとしています。しかし、それが偽であれば、スクリプトは止まらず、 "これは実行されますか?"というメッセージが表示されます。 - 関数をsubmit()の中で呼び出すのがなぜ機能しないのか、誰かに私にヒントを与えるでしょうか?ここで何が間違っていますか?前もって感謝します。あなたの検証関数がtrueを返す必要があります他の関数の中で関数を使ってjsの実行を止める方法

// validate name 
function validate(name){ 
    if(name.length < 1){ 
     console.log('false - length: ' + name.length); 
     return false; 
    } 
} 

// submit function 
function submit(){ 
    var name = ''; 

    // if name is empty, the script should stop. 
    validate(name); 

    console.log("This will run??"); 
    return true; 
} 

submit(); 
+0

それは作業を行います。これは単に間違って*期待していることをしません: 'return'はそれが現れる関数本体にのみ適用されます。 – user2864740

+1

' if(!validate(name))return false; 'また、チェックが合格すると 'validate'の最後に'。 – Thilo

答えて

2
function validate(name){ 
    if(name.length < 1){ 
     console.log('false - length: ' + name.length); 
     return false; 
    } 
    return true; 
} 

(それ以外の場合はfalsyある、undefinedを返します)

function submit(){ 
    var name = ''; 

    // if name is empty, the script should stop. 
    if(validate(name)) { 
    console.log("This will run??"); 
    return true; 
    } else { 
    return false; 
    } 
} 
関連する問題