-1

我目前的声明:

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语句。

那我该怎么办?

4

1 回答 1

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 函数。

于 2012-12-20T01:31:56.097 回答