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