2010-11-25 10 views
1

JavaScriptで複数の項目を検証するにはどうすればよいですか?複数の商品をどのように検証しますか?

ないこの...

if (username && username.length > 2 && username.length < 45) { 
    if (password && password.length ...) { 
    if (birthday && birthday.isNumeric ...) { 
     if (age && ... && ...) { 
     // Success 
     } else { 
     // Error 4 
     } 
    } else { 
     // Error 3  
    } 
    } else { 
    // Error 2 
    } 
} else { 
    // Error 1 
} 

...むしろ、この...

validate({ 

    validate 'username' and use these conditions 'username && username.length...', 
    validate 'password' and use these conditions 'password && password.length...', 
    validate 'birthday' and use these conditions 'birthday && birthday.isNumeric...', 
    validate 'age' and use these conditions 'age && ... && ...' 

}, function(error) { 

    if (!error) { 
    // Success 
    } 

}); 

あなたは、任意のアイデアを持っていますか?返信ありがとう!

+0

これらはネストされた 'if'ステートメントであり、オブジェクトではありません。 – SLaks

+0

@SLaks Fixed ... –

答えて

1

jQuery Validation Pluginを使用することができます。これは、自分で複製するよりもずっと簡単で効果的です。

0

私は通常、そうのように、このようなものを扱う:

var error = new Array(); 
var errorNum = 0; 

if(!(username && username.length > 2 && ...)) { 
    error[errorNum++] = "ERROR1"; 
} 

if(!(password &&...)) { 
    error[errorNum++] = "ERROR2"; 
} 

ませネスティングは必要ありません。

編集:申し訳ありませんが、最初の構文はPhPとしてjavascriptではありません。私は時々あまりにも頻繁に2つをミックス

+0

これは無効な構文です。 – SLaks

+1

これはまだ無効です: 'Array'ですが、' var error = []; 'と' 'error.push(" ERRORx ")'](https://developer.mozilla.org/ja/JavaScript/Reference/Global_Objects/Array/push)を参照してください。 –

+0

@Marcel Fixed ...もう一度。申し訳ありませんが、それは私が特定の構文よりも多くを共有しようとしていた一般的なパターンです。私は通常それをPhPで使用しています。これは、共有するときに私の頭から出てきた構文です。 –

関連する問題