2017-08-08 17 views
0

如何執行這些IF語句都在同一時間?我想返回前必須檢查所有國際單項體育聯合會和的document.getElementById顯示所有消息(「TD100」)。innerHTML之中。使用Javascript - 驗證所有國際單項體育聯合會在同一時間

例如:如果我填寫我的表格:

  1. 無效的電子郵件(不即@符號)
  2. 我的電子郵件不匹配
  3. 我的密碼不匹配
  4. 和我的密碼不符合長度要求

如何在(td100)中顯示所有錯誤?

function regValidation() 
{ 
    document.getElementById('td100').innerHTML = ""; 
    event.preventDefault ? event.preventDefault() : event.returnValue = false; 

    var email1 = document.getElementById('em100').value; 
    var email2 = document.getElementById('em101').value; 
    var pass1 = document.getElementById('pw100').value; 
    var pass2 = document.getElementById('pw101').value; 

    if (!document.getElementById('em100').checkValidity()) return document.getElementById('td100').innerHTML += "</br>Emails are not valid."; 
    if (email1 !== email2) return document.getElementById('td100').innerHTML += "</br>Emails do not match."; 
    if (pass1 !== pass2) return document.getElementById('td100').innerHTML += "</br>Passwords do not match."; 
    if (pass1.length < @minPass || pass1.length > @maxPass) return document.getElementById('td100').innerHTML += "</br>Password must be @minPass - @maxPass characters."; 

    return true && regSuccess(); 
} 
+3

構建一個錯誤消息的字符串,然後設置一次html,如下所示:'''''var errors =「」;如果(條件){誤差+ = 「錯誤消息」;}如果(...),...,的document.getElementById( 「TD100」)的innerHTML =錯誤;' – mhodges

+2

執行if語句內不'return' 。 – user1777136

回答

0
function regValidation() 
{ 
    document.getElementById('td100').innerHTML = ""; 
    event.preventDefault ? event.preventDefault() : event.returnValue = false; 

    var error = ""; 
    var email1 = document.getElementById('em100').value; 
    var email2 = document.getElementById('em101').value; 
    var pass1 = document.getElementById('pw100').value; 
    var pass2 = document.getElementById('pw101').value; 

    if (!document.getElementById('em100').checkValidity()) error += "</br>Emails are not valid."; 
    if (email1 !== email2) error += "</br>Emails do not match."; 
    if (pass1 !== pass2) error += "</br>Passwords do not match."; 
    if (pass1.length < @minPass || pass1.length > @maxPass) error += "</br>Password must be @minPass - @maxPass characters."; 

    if (error !== "") 
    { 
     document.getElementById('td100').innerHTML = error 
    } else { 
    return true && regSuccess(); 
    } 
} 
0

好了,現在真乾的解決方案。設置一個表並重復它:

var checks = [ 
[pass1===pass2,"password missmatch"], 
[email1===email2,"email missmatch"] 
//.. 
]; 

var passed = true; 
var errors=[]; 
for(let [check,message] of checks){ 
    if(!check){ 
    alert(message)//show message 
    //or collect: 
    errors.push(message); 

    passed = false; 
    } 
} 

//now passed contains the result: 
if(passed) 
    alert("wohoo, all fine ;)"); 

//and errors can be shown: 
document.getElementById("err") 
    .innerHTML=errors.join("<br>");