2

大约一年来,我一直在搞乱这样的验证:

$(document).ready(function(){


    $('#contact-form').submit(function(){
        var name = $('#inputnimi').val(),
            email = $('#inputemail').val(),
            message = $('#inputmessage').val();

            var nameerror = "<h4>Puuttuva kenttä</h4>",
            emailerror = "<h4>Puuttuva kenttä</h4>",
            messageerror= "<h4>Puuttuva kenttä</h4>";

            if(name == ""){
                $('.message-console').html(nameerror);
                return false;
            }

            if(email == ""){
                $('.message-console').html(emailerror);
                return false;
            }

            if(message == ""){
                $('.message-console').html(messageerror);
                return false;
            }
            $.ajax({
            type: "POST",
            url: "contact.php",
            data:  form-data,
            dataType: "text",
            error: function(){alert("ERROR");

            },
            success: function() {
                alert("success");
            }


            });
            return false;



    });
});

但是,我不喜欢这样,因为:

  • 它一一检查错误,这在长表格上很烦人
  • 我知道有更好的方法来做到这一点

而且我想知道如何一键验证所有字段,而我所能想到的就是这样的事情,这显然永远不会起作用:

if(name||email||message == ""){
$('.message-console').html(errors);
return false;
}

所以我想在没有任何插件的情况下验证表单,并立即显示所有错误,如果有的话。但是怎么做?

4

2 回答 2

0

好吧,不要让它每次都返回 false。然后你可以有类似的东西:

$('.message-console').html('');

if(name == ""){
  $('.message-console').append(nameerror);
 }
 /*others*/

虽然我会按照 dnagirl 的建议去做并使用http://bassistance.de/jquery-plugins/jquery-plugin-validation/ - 就额外的插件而言,它并没有那么糟糕,而且它很容易使用。

于 2012-11-07T19:47:22.433 回答
0

你可以尝试这样的事情:

if(!(name&&email&&message))
{
    //error logic
}

但是,如果任何值等于0,验证将再次触发,因此您最好使用

if((name&&email&&message)=="")
{
    //error logic
}
于 2012-11-07T19:13:57.203 回答