表单的多个if语句

时间:2012-12-20 01:19:51

标签: jquery validation

我目前的陈述:

if (recaptcha == '' || name == '' || email == '' || emailCheck || emailVerify || priority == 'pap' || topic == 'pat' || message == 'message') {
    $('#incorrmsg').html("Please fill in the fields").slideDown("slow");
} else { 
    //else statemnt goes here
}​

这个问题是它只能用一个id来做。

我想将其更改为此声明:

if (name == '') {
    $('#incorrname').html("Please fill in your name").slideDown("slow");
}

if (email == '' || emailCheck || emailVerify) {
    $('#incorremail').html("Please fill in and verify your email").slideDown("slow");
}

if (priority == 'pap') {
    $('#incorrpri').html("Please pick a priority").slideDown("slow");
}

if (topic == 'pat') {
    $('#incorrtop').html("Please pick a topic").slideDown("slow");
}

if (message == 'message') {
    $('#incorrmess').html("Please type in your message").slideDown("slow");
} else {
    //else statemnt goes here
}​

如果字段中有错误,我想同时显示所有消息 这意味着我不想使用else if语句。

那我该怎么办?

1 个答案:

答案 0 :(得分:0)

你给自己带来的麻烦超过你需要的特殊性。使用数组,在验证过程中将所有错误推送到其中,然后在输出过程中显示错误。

var err = new Array();
if(email == '' || emailCheck) {
  err[] = 'Yo, your email is messed up.';
}

if(err.length > 0) {
  for (var i=0;i<err.length;i++)
    { 
      $('#errors').append('<li>' + err[i] + '</li>');
    }
}

此外,您可以查看jQuery Validation plugin。当我开始学习时,这非常有用,无论是为了易于实现还是为了理解如何最好地构建JavaScript函数。