4

以下のコードを試しましたが、エラー メッセージが表示されません。

var v = jQuery("#account_info").validate({
    //errorLabelContainer: $("#result"),
    submitHandler: function(form) {
        jQuery(form).ajaxSubmit({                               
           target: "#checkOut_error",                   
            success: function(msg) {
                //setTimeout("window.location='MyBids.php'", 2000);             
                if(msg == '<?php echo OBJECT_STATUS_SUCCESS;?>')    {
                    $('#checkOut_error').html('<div class="msg msg-thanks">Bid Submitted Successfully !</div>');
                    //setTimeout("window.location='"+<?php echo LINK_TO_TENBID;?>+"'", 2000);
                    //setTimeout("window.location.reload(true)",2000);
                   //$('.result').html('<div class="msg msg-thanks">Bid Submitted Successfully !</div>');

                } else{
                                        $("#checkOut_error").html(msg);
                                    }
            },
            clearForm:  false,
            resetForm:  false
        });
    },
           errorLabelContainer: "#checkOut_error",
          rules: {
                phone_number: {
                    required: true

                },
                recipient_name: {
                    required: true,
                    min_length: 6
                }

          },
          messages: {
                recipient_name: {
                    required: "Enter recipient name",
                    min_length: "Name should be atleast 6 characters long"
                }
          }
 });

-ルールとエラー メッセージを追加する方法は?

-検証プラグインが使用する属性は、name または id?

-一度に 1 つのエラー メッセージを表示する方法は?

4

2 に答える 2

10

-検証プラグインが使用する属性は、name または id?

ドキュメントに従って、プラグインではすべてのinputフィールドにname attribute. 内にrulesとを指定する場合は、 を使用します。messages.validate()name attribute

-ルールとエラー メッセージを追加する方法は?

min_lengthルールにはアンダースコアを含めないでください。ですminlength。それ以外の場合、コードは正しく見えます。

コードに基づく簡単なデモ...

jQuery:

$(document).ready(function () {

    $("#account_info").validate({
        rules: {
            phone_number: {
                required: true
            },
            recipient_name: {
                required: true,
                minlength: 6  // <-- removed underscore
            }
        },
        messages: {
            phone_number: {
                required: "this field is required"
            },
            recipient_name: {
                required: "Enter recipient name",
                minlength: "Name should be at least {0} characters long" // <-- removed underscore
            }
        },
        submitHandler: function (form) { // for demo
            alert('valid form');  // for demo
            return false;  // for demo
        }
    });

});

HTML:

<form id="account_info">
    <input type="text" name="phone_number" />
    <br/>
    <input type="text" name="recipient_name" />
    <br/>
    <input type="submit" />
</form>

動作中の jsFiddle デモ: http://jsfiddle.net/rfgRL/


また、 のようなルールを使用する場合minlength、カスタム メッセージには、{0}特定のルール定義を挿入するプレースホルダー を含めることができます。

minlength: 6

カスタムメッセージで...

minlength: "Name should be at least {0} characters long"

自動的に表示されます...

名前は 6 文字以上にする必要があります


.validate() オプションを使用して検証プラグインを初期化する準備ができている DOM で1 回だけ呼び出すため、それを変数に割り当てる目的はありません。どこでも再利用されていません...少なくともそうすべきではありません。

var v = jQuery("#account_info").validate({...});

単純にこれでしょう...

jQuery("#account_info").validate({...});

コードの他の場所で、有効性をテストする必要がある場合、formまたは有効性テストを再トリガーする必要がある場合は、メソッドを使用し.valid()ます。ブール値を返し、保留中のフォーム エラーの表示をトリガーします。例:

if (jQuery("#account_info").valid()) { ...
于 2013-01-22T14:49:53.733 に答える
0

これが簡単なjqueryregistration(signup)バリデーターです:

        $('#submitButton').click(function() {
        $("#accounterForm").validate({
    rules: {
        firstName: "required",
        lastName: "required",
        companyName: {
            required: true,
            no_special_characters: true,
            maxlength: 64
        },
        companyFullName: "required",
        password: {
            required: true,
            minlength: 6
        },
        confirmPassword: {
            required: true,
            minlength: 6,
            equalTo: "#mid-box4"
        },
        emailId: {
            required: true,
            email: true
        }
    },
    messages: {
        firstName: "Please enter your first name",
        lastName: "Please enter your last name",
        companyName: "Please enter company ID",
        companyName: {
            required: "Please enter company ID",
            no_special_characters: "Company ID should contain atleast one letter and no special characters",
            maxlength: "Company ID exceeded the maximum length"
        },
        companyFullName: "Please enter company name",
        password: {
            required: "Please provide a password",
            minlength: "Your password must be at least 6 characters long"
        },
        confirmPassword: {
            required: "Please provide a password",
            minlength: "Your password must be at least 6 characters long",
            equalTo: "Please enter the same password as above"
        },
        emailId: "Please enter a valid email address",
        confirmemailId:{
        required:"Please confirm email address",
        equalTo :"Emailid and confirm emaild must be same"
        },
        agree: "Please accept Terms of use"
    }
});
于 2013-01-22T14:44:55.930 に答える