如何在JavaScript中验证多个项目,但没有嵌套ifs?
不是这个......
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 :(得分:1)
您可以使用jQuery Validation Plugin,这比自己复制更简单,更有效。
答案 1 :(得分:0)
我通常像这样处理这样的事情:
var error = new Array();
var errorNum = 0;
if(!(username && username.length > 2 && ...)) {
error[errorNum++] = "ERROR1";
}
if(!(password &&...)) {
error[errorNum++] = "ERROR2";
}
不需要嵌套。
编辑:抱歉,初始语法为PhP而不是javascript。我有时经常把两者混在一起。