首先,你必须了解的fancybox如何与inline
内容:当您打开的fancybox,目标inline
内容是“移动”从它的位置在DOM到的fancybox(占位符是左代替)
...在你的情况下,字段被“移出”form
,所以当你从fancybox内提交时,字段field_1
或field_2
不存在于form
内部,因此它们不能返回任何值。
您需要重新编写代码的逻辑。我会做的是bind
在报送form
的fancybox内的事件封闭的fancybox(返回田里的地方form
内)和提交的form
算账,而不是这些链接:
<a href="#" onClick="document.testform.submit();">Submit from FB 1</a>
和
<a href="#" onClick="document.testform.submit();">Submit from FB 2</a>
会做
<a class="submit" href="#nogo" >Submit from FB 1</a>
和
<a class="submit" href="#nogo" >Submit from FB 2</a>
通知我添加class="submit"
处理来自这种选择该事件。
然后,在你的脚本的顶部创建一个标志(如下所述)
var subMitted = false;
和bind
一个click
事件选择.submit
:
$(".submit").bind("click", function(){
subMitted = true; // set to true when we click on the selector .submit only
$.fancybox.close();
});
和afterClose
回调添加到您的fancybox自定义脚本
$(".fancybox").fancybox({
afterClose: function(){
// will submit if we clicked the selector .submit
if(subMitted){
subMitted = false; // re-initialize the flag
$("form[name='testform']").submit();
}
}
});
如果subMitted
是true
,我们点击.submit
选择,所以我们将关闭的fancybox后提交的form
(我们不提交的form
IF的fancybox用的是close
按钮关闭)
这样,你的表格将总是返回所有值,无论它是否从fancybox提交或不。
来源
2012-09-27 00:36:50
JFK