3

リクエストを送信する前に、フォームを検証しようとしています。私はjquery検証を使用しています

ページの読み込みが完了すると、フォームが自動送信され、divに「読み込み中」と表示されます。しかし、ここでは何も起こりません。私のコードです。しかし、それは機能していないようです。

<script type="text/javascript">

    function submitForm() {
        $('#SearchForm').validate({
            errorLabelContainer: "#ErrorLabel",
            rules: {
                instrument: {
                    required: true,
                    maxlength: 10
                }
            },
            messages: {
                maxlength: "Must no longer than 10 characters",
                required: "Must not be empty"
            },

            submitHandler: function () { $('#SearchForm').submit(); }
        });
    }

    $(document).ready(function () {
        $('#SearchForm').submit(function () {
            $('#DivToUpdate').text('Loading ...');
        });
        submitForm();
    });
</script>

ll

4

2 に答える 2

4

小さな作業デモを作成しました http://jsfiddle.net/CRfuZ/

2つのこと:入れinvalidHandlerformsubmitHandler

上記のデモでは、さらに入力するとmaxlenght 10、ハルバートがinvalidHandlerそれをキャプチャします。

残りは、デモを自由に試してみてください。

これはうまくいけば役立つでしょう:)

リンク:http ://docs.jquery.com/Plugins/Validation/validate

コード

jQuery(function($) {
    $("#form").validate({
        debug: false,
        focusInvalid: false,
        onfocusout: false,
        onkeyup: false,
        onclick: false,
        rules: {
            instrument: {
                required: true,
                maxlength: 10
            },
        },
        messages: {
            maxlength: "Must no longer than 10 characters",
            required: "Must not be empty"
        },
        success: function(label) {
            alert('succes:' + label);
        },
        submitHandler: function(form) {
            alert('start submitHandler');
            postContent('test');
            alert('end submitHandler');
        },
        invalidHandler: function(form, validator) {
            alert('invalidHandler');
        },
    });
});


function postContent(postData) {
    alert('postcontent: ' + postData);

}


​
于 2012-06-09T09:20:17.820 に答える
1

以下に記述されたコードを使用すると、問題が解決する場合があります...

<script type="text/javascript">
    jQuery(function ( $ ) {
            var $theForm = $( 'form' );
        $( '#DivToUpdate' ).text( 'Loading ...' );
        $theForm.validate({
            rules: {
                instrument : {
                    required: true,
                    maxlength: 10
                }
            }, messages: {
                maxlength : "Must no longer than 10 characters",
                required : "Must not be empty"
            }
        });
        if( $theForm.valid() ) {
            $theForm.submit(); //submitting the form
        }
    });
</script>

あなたはsubmitHandler一般的に使用することになっていない...

追加:jsfiddleでの実行例。

于 2012-06-09T09:26:27.503 に答える