2016-04-05 31 views
0

こんにちは、機能を呼び出すことができるかどうかを知りたいのですが、IF関数checkV、checkV1、checkV2が完了し、で満たされた。関数A、B、Cが実行された後にのみ関数Dを呼び出す方法

HTML & javascriptの

http://pastebin.com/xY1MBhv5

function checkV() { 
 
    var check = document.getElementById("voornaam").value; 
 

 
    if (isNaN(check) || check.length == 0) { 
 
    return true; 
 
    } else { 
 
    alert("In de naamvelden geen cijfers invoeren s.v.p."); 
 
    } 
 

 
}; 
 

 
function checkV1() { 
 
    var check1 = document.getElementById("achternaam").value; 
 

 
    if (isNaN(check1) || check1.length == 0) { 
 
    return true; 
 
    } else { 
 
    alert("In de naamvelden geen cijfers invoeren s.v.p."); 
 
    } 
 
}; 
 

 
function checkV2() { 
 
    var check2 = document.getElementById("toneelspeler").value; 
 

 
    if (isNaN(check2) || check2.length == 0) { 
 
    return true; 
 
    } else { 
 
    alert("In de naamvelden geen cijfers invoeren s.v.p."); 
 
    } 
 
}; 
 

 

 
function confirm() { 
 
    var voorNaam = document.getElementById("voornaam").value; 
 
    var toneelNaam = document.getElementById("toneelspeler").value; 
 
    var achterNaam = document.getElementById("achternaam").value; 
 

 
    alert("Beste " + voorNaam + " " + achterNaam + ", ontzettend bedankt voor je wens, we zullen ervoor zorgen dat   " + toneelNaam + " je wens zal ontvangen!"); 
 

 
}; 
 

 
window.onload = function() { 
 
    document.getElementById('submit').onclick = function() { 
 

 
    checkV() 
 
    checkV1() 
 
    checkV2() 
 
    confirm() 
 
    }; 
 
};
<header> 
 
    <div id="logo"> 
 
    <a href="home.html"> 
 
     <img src="logo.png" id="home" alt="Logo van Het Imperium Theater"> 
 
    </a> 
 
    <a href="http://www.facebook.com" target="blank"> 
 
     <img src="facebook.png" id="facebook" alt="facebook" /> 
 
    </a> 
 
    <a href="http://www.twitter.com" target="blank"> 
 
     <img src="twitter.png" id="twitter" alt="twitter" /> 
 
    </a> 
 
    </div> 
 

 
    <nav> 
 
    <ul> 
 
     <li><a href="Home.html">Home</a> 
 
     </li> 
 
     <li><a href="Agenda.html">Agenda</a> 
 
     </li> 
 
     <li><a href="Het Theater.html">Het Theater</a> 
 
     </li> 
 
     <li><a href="Ontdek Leiden.html">Ontdek Leiden</a> 
 
     </li> 
 
     <li><a href="Contact.html">Contact</a> 
 
     </li> 
 
    </ul> 
 
    </nav> 
 

 
</header> 
 

 
<div id="wrapper"> 
 

 
    <form id="form" name="form"> 
 
    <h1>Verstuur een wens.</h1> 
 
    <div id="forms"> 
 
     <label for="voornaam">Voornaam: 
 
     <input type="text" name="name" id="voornaam" placeholder="uw voornaam" name="fname" required> 
 
     </label> 
 
     <label for="achternaam">Achternaam: 
 
     <input type="text" name="name" id="achternaam" placeholder="uw achternaam" name="fname" required> 
 
     </label> 
 
     <label for="toneelspeler">Naam toneelspeler: 
 
     <input type="text" name="name" id="toneelspeler" placeholder="naam van de toneelspeler" name="fname" required> 
 
     </label> 
 
     <label for="boodschap">Uw wens: 
 
     <textarea rows="4" cols="20" name="name" placeholder="Type hier uw wens" required></textarea> 
 
     </label> 
 
    </div> 
 
    <input type="submit" value="Submit" id="submit"> 
 

 
    </form> 
 

 
</div> 
 

 
<footer> 
 
    <a href="home.html"> 
 
    <p>Theater Imperium</p> 
 
    </a> 
 
    <p>Oude Vest 33e</p> 
 
    <p>2312 XR Leiden</p> 
 
    <p>071 5141035</p> 
 
    <p>&copy; Arpiar Melikjan</p> 
 

 
</footer>

+0

checkV checkV1とcheckV2が実行された場合の変数を作成します。これらの3つの関数の最後にあるデフォルト値falseは、対応する変数をtrueに設定します。 "確認"の開始時に 'if(checkVdone && checkV2done && checkV3done){[everything]}'と言っています。検証についてはあまりよく分かりませんが、すべてのフィールドでデフォルト以外の値を確認できます。 – Observer

答えて

0

提供されたリンクによれば、すべてがうまくいく場合、​​とcheckV2()true、それ以外の場合はundefinedを返します。

:あなたは(デバッグに役立つかもしれない)あなたの制御フローをより細かく制御したい場合、あなたはこのような何かを行う可能性があります

if(checkV() && checkV1() && checkV2()) 
    //Do submit 

EDIT:あなたはこのような何かを行うことができます

if(checkV()) { if(checkV1()) { if(checkV2()) { //Do submit } } } 

これでブロックelseを関連付けることができ、入力の検証に失敗した方法に従って処理を実行できます。

+0

ありがとうございました! – kensington

+0

falseを返す関数を知る必要がある場合は、デバッグとメンテナンスが非常に難しくなります。入れ子関数は涼しく見えますが、それはありません。 –

+0

私は別の質問があります。数字が記入されると、番号を記入しないというアラートが表示されますが、これは正しいです。しかし、例えば、 "hey12"を記入すると、関数はそれを正しいものとして検証します。だから、数字が記入されたときに、キャラクターとの組み合わせでは、それがあってはならない間の評価は正しい。 – kensington

関連する問題