使用facebox提交表单

时间:2011-05-20 17:45:18

标签: jquery ruby-on-rails ajax fancybox

我在rails中有一个工作应用程序,我想要散布一些ajaxiness。

我目前有一个Multistep表单,想要执行以下操作:

  • 用户在第1步点击“提交”(表单已提交)
  • fancybox启动显示注册表单和“注册”或“跳过”按钮
  • 如果在精美框中点击“注册”或“跳过”,
  • 无关紧要,用户将转到我的应用的第2步。

我正在搜索launching fancybox on form submitsubmitting form via fancybox

在演示中,我一无所获。

在使用fancybox之前,是否有人使用fancybox插件完成了这个工作流程?

我在提交表单时遇到问题的用户阅读了一些SO questions。我提到的工作流程是否有更好的插件?

1 个答案:

答案 0 :(得分:0)

我已经完成了与fancybox类似的实现。我有一个用户结账,在点击结账时,会出现一个带有问题提示的fancybox。在显示提示之前,它将提交表单。这是我使用的代码的概述:

我将表单提交按钮更改为链接:

<a id='various2' href='#submitform'>Submit</a>

将fancybox绑定到链接并添加一个oncomplete以在fancybox打开后立即处理该表单:

$(document).ready(function() {


            $("#various2").fancybox({
                'cache' : false,
                'hideOnOverlayClick' : false,
                'showCloseButton'   : false,
                'autoDimensions'    : false,
                'width'             : 650,
                'titlePosition'     : 'inside',
                'transitionIn'      : 'fade',
                'transitionOut'     : 'fade',
                'scrolling'         : 'no',

                'onComplete'            : function(){
                    processform();
                }
            });
});

使用javascript函数使用ajax处理表单,然后显示您的登录/创建帐户信息。如果是我,我会做另一个ajax调用来显示你的登录/注册但是我已经把那部分代码留了出来但用注释表示你可以调用它:

function processform(){
        var idcardnumber1 = jQuery("#field1").val();
        var idcardnumber2 = jQuery("#field2").val();
        $.ajax({
            cache : false, 
           type: "POST",
           url: "processform.php",
           data: "field1="+field1+"&field2="+field2,
            dataType: "json",
           success: function(data){
            if(data.valid == 1){
             // Display Your Login Signup Form
            }
            else{
                // Close Fancybox since the form did not submit

                $.fancybox.close();
            }


           }
         });
    }