使用jquery.validate.js和jquery.form.js进行Ajax表单提交?

时间:2012-04-15 17:47:24

标签: jquery ajax jquery-validate form-submit

我想通过混合两个不同的javascript代码将我的html表单数据提交到servlet,其中一个是:

<script type="text/javascript">
        $(document).ready(function() {
            $("#form1").validate({
                rules: {
                    name: "required",
                    email: {
                        required: true,
                        email: true
                    },
                    url: {
                        url: true
                    },
                    comment: {
                        required: true
                    }
                },
                messages: {
                    comment: "Please Enter Your Message."
                },
                submitHandler:function(login_form){
                    $(login_form).ajaxSubmit({
                        target: '#msg-box',
                        success: function() {
                            $('#form1').slideUp('slow', function(){
                                $(".show_hide").show();
                            });
                        }
                    });
                }
            });
        });
    </script>

,第二个是(来自this教程):

<script type="text/javascript">
$(document).ready(function(){
    $("#login_frm").submit(function(){

         //remove previous class and add new "myinfo" class
        $("#msgbox").removeClass().addClass('myinfo').text('Validating Your Login ').fadeIn(1000);


        this.timer = setTimeout(function () {
            $.ajax({
                url: 'check.jsp',
                data: 'un='+ $('#login_id').val() +'&pw=' + $('#password').val(),
                type: 'post',
                success: function(msg){
                    if(msg != 'ERROR') // Message Sent, check and redirect
                    {               // and direct to the success page

                        $("#msgbox").html('Login Verified, Logging in.....').addClass('myinfo').fadeTo(900,1,
                          function()
                          {
                             //redirect to secure page
                             document.location='login.jsp?user='+msg;
                          });

                    }
                    else
                    {
                        $("#msgbox").fadeTo(200,0.1,function() //start fading the messagebox
                        {
                          //add message and change the class of the box and start fading
                          $(this).html('Sorry, Wrong Combination Of Username And Password.').removeClass().addClass('myerror').fadeTo(900,1);
                        });

                    }
                }

            });
        }, 200);
        return false;
    });     

});

  </script>  

我不是javascript或JQuery忍者,有人请帮助我将这些代码组合在一起..
有一点可以肯定的是,我要在submitHandler代码中进行许多更改,但我尝试的却没有成功。

P.S。:对jsp-jquery-ajax表单验证和提交的任何更好的想法都是热烈欢迎

1 个答案:

答案 0 :(得分:0)

您的$.ajax$().ajaxSubmit可以合并,因为它们通常采用相同的选项。

我会重构$ .ajax以使其成为ajaxSubmit的一部分。你可以摆脱$ .ajax的data: b / c ajaxSubmit处理它。 success: function()也是一样的。

对于setTimeout()removeClass(),您可以使用:beforeSubmit:与$ .ajax的beforeSend:

相同