如果验证成功,如何提交表单

时间:2012-06-09 09:07:07

标签: jquery html jquery-validate

我在提交请求之前尝试验证表单。 我正在使用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

2 个答案:

答案 0 :(得分:4)

做了一个小的工作演示 http://jsfiddle.net/CRfuZ/

两件事:尝试invalidHandler并将form传递给submitHandler

在上面的演示中,如果你输入更多maxlenght 10invalidHandler中的halbert将会捕获它。

休息随意玩这个演示。

这有望帮助:)

link: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);

}


​

答案 1 :(得分: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处运行示例。