2017-08-08 8 views
0

これらを実行するにはIFステートメントはすべて同時にですか?すべてのIFをRETURNの前にチェックし、document.getElementById( 'td100')。innerHTMLのすべてのメッセージを表示したいと思います。私は自分のフォームに必要事項を記入場合:Javascript - すべてのIFを同時に検証する

例えば(つまり、@記号なし)

  1. 無効な電子メールを
  2. は私の電子メールは
  3. が私のパスワードが
  4. に一致しない一致していません
  5. とパスワードが長さ要件を満たしていません

(td100)にすべてのエラーを表示するにはどうすればよいですか? [OK]を

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を1回設定します。これは 'var errors =" "; if(条件){エラー+ = "エラーメッセージ";} if(...)、...、document.getElementById( "td100")。innerHTML = errors; ' – 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>"); 
関連する問題