2011-05-20 75 views
0

我有一个运行的应用程序在rails中,我想洒一些ajaxiness。使用facebox提交表单

我现在有一个多形式,并且要做到以下几点:在第1步点击“提交”

  • 用户(形式被提交)
  • 的fancybox启动显示注册表单和“注册”或“跳过”按钮
  • 如果点击“注册”或“跳过”并不重要,用户会转到步骤2以查看我的应用程序。

我正在寻找launching fancybox on form submitsubmitting form via fancybox

在演示的我什么也没找到。

在我使用fancybox之前,有人使用fancybox插件来完成这个工作流程吗?

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

回答

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(); 
      } 


      } 
     }); 
    } 
+0

我一直在寻找一种方式来不要将按钮变成超链接。此外,我的表单有超过20个字段,并且像'processForm()'方法中那样传递它们将会非常麻烦并且很难在将来调试。我会留意其他选项。 – Omnipresent 2011-05-25 13:44:02