0

我使用 jquery 表单向导分两步显示表单。在进行第二步之前,我使用 jquery 表单插件对第 1 步中的表单字段进行 ajax 验证。

我遇到的问题是完整的表单也是使用 ajax 发布的。不是重定向到显示结果的另一个页面,而是在同一页面上获取结果。如何配置表单插件以发布不使用 ajax 的完整表单?

<script type="text/javascript">
                    $(function(){
                            $("#Catering").formwizard({
            formPluginEnabled: true,
            validationEnabled: true,
            focusFirstInput : true,
            remoteAjax : {"first" : { // add a remote ajax call when moving next from the second step
                    url : "/validate",
                    dataType : 'json',
                    beforeSend : function(){alert("Starting validation.")},
                    complete : function(){alert("Validation complete.")},
                    success : function(data){
                    if(!(data.geldig)){ // change this value to false in validate.html to simulate successful validation
                    $("#status").fadeTo(500,1,function(){
                    $(this).html(data.errormessage)
                                    });
                            return false; //return false to stop the wizard from going forward to the next step (this will always happen)
                                    }
                            return true; //return true to make the wizard move to the next step
                            }
                    }},
                             }
                            );
            });


</script>
4

1 回答 1

0

如果您不介意通过表单选项中的 URL 公开您的变量,您可以重定向到任何地方,并且使用表单捕获的变量存储在 $.param(data)

所以我用这部分解决了

formOptions: {
    success: function(data){ $("#status").fadeTo(500,1,function(){ $(this).html("You are now registered!").fadeTo(5000, 0); 
    beforeSubmit: function(data){ 

        $("#data").html("data sent to the server: "+ $.param(data) );
        /*HERE YOU MADE THE REDIRECTION WITH THE VARIABLES THROUGHT URL*/
        window.location.href = "http://www.google.com?"+$.param(data);
    },
    dataType: 'json'
 }

所以 beforeSubmit 你所做的就是重定向到带有 URL 参数的任何页面

于 2012-08-21T14:59:21.543 回答