2

私は約1年間、このような検証をいじっています。

$(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;



    });
});

しかし、私はこれが好きではありません:

  • エラーを1つずつチェックしますが、長いフォームでは煩わしいです
  • 私はそれを行うためのより良い方法があることを知っています

そして、ワンクリックですべてのフィールドを検証する方法を考えていました。私が考えることができたのは、このようなものだけで、明らかに機能することはありません。

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

そのため、プラグインを使用せずにフォームを検証し、エラーがある場合はすべてのエラーを一度に表示したいと思います。しかし、どのように?

4

2 に答える 2

0

あなたはこのようなことを試すことができます:

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

ただし、値のいずれかが0に等しい場合は、検証が再度トリガーされるため、次のように使用することをお勧めします。

if((name&&email&&message)=="")
{
    //error logic
}
于 2012-11-07T19:13:57.203 に答える
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 に答える