验证jquery应用后,每个帖子提交数据不起作用($ _POST为空)

时间:2015-04-25 02:45:13

标签: javascript jquery ajax jquery-validate

我遇到了Jquery,AJAX和字段验证问题。

验证工作正常,如果输入的一切正常,则重定向可以正常工作,但是$_POST数组中不包含我的字段值。

以下是表单开始标记:

<form class="smart-form" id="register-form" method="post" action="#pages/target.php" novalidatee>

这里有JavaScript部分:

<script type="text/javascript">              
        // Load form valisation dependency 
loadScript("js/plugin/jquery-form/jquery-form.min.js", runFormValidation);


// Registration validation script
function runFormValidation() {
    //e.preventDefault();
    var $checkoutForm = $('#register-form').validate({

    // Rules for form validation
        rules : {
            name : {
                required : true
            },
            vorname : {
                required : true
            },  
            passwort : {
                required : true,
                minlength: 8
            },
            passwort2 : {
                required : true,
                minlength: 8
            },
            email : {
                required : true,
                email : true
            },          
            admin : {
                required : true,
                min: {
                  // min needs a parameter passed to it
                  param: 1
                }
            },
        },

        // Messages for form validation
        messages : {
                /* My Messagees*/ not mentionend

        },
        // Ajax form submition
        success : function() {
                     form.submit();
                    $('#register-form').addClass('submited');
                },


        // Do not change code below
        errorPlacement : function(error, element) {
            error.insertAfter(element.parent());
        }
    });        
}; 

1 个答案:

答案 0 :(得分:0)

通过该插件的documentation for the validate method,我发现当您确实想要提交有效表单时,您应该使用articles回调。

  

submitHandler(默认:原生表单提交)

     

在表单有效时回调处理实际提交。获取表单   作为唯一的论点。替换默认提交。正确的地方   在验证后通过Ajax提交表单。

正如@Sparky所说: 您通常不需要成功选项,除非您想在有效元素上使用错误标签,例如绿色复选标记或其他内容。

  

成功类型:字符串或函数()

     

如果指定,则显示错误标签以显示有效元素。如果给出了一个String,则会添加它   作为标签的一个类。如果给出了一个Function,则用它调用它   label(作为jQuery对象)和验证的输入(作为DOM元素)。   标签可用于添加“ok!”等文本。

因此,不应将submitHandler位放在form.submit();回调中,而应将其放在success内。

所以你的代码应该是这样的:

submitHandler

顺便说一句,// Optional, read what this does success: 'valid', // This does the actual form submitting submitHandler: function (form) { form.submit(); }, 不是AJAX,根据我的理解,它只是以传统的方式提交表单。