我的网页上有一些链接,点击后打开一个fancybox。在fancybox里面有一些动作按钮(如“关闭项目”,“删除项目”)。点击这些按钮后,我希望它像往常一样提交表单,然后关闭fancybox。我怎样才能在不干扰POST的情况下做到这一点?关闭FancyBox之后?
注意:我没有使用Ajax。
我的网页上有一些链接,点击后打开一个fancybox。在fancybox里面有一些动作按钮(如“关闭项目”,“删除项目”)。点击这些按钮后,我希望它像往常一样提交表单,然后关闭fancybox。我怎样才能在不干扰POST的情况下做到这一点?关闭FancyBox之后?
注意:我没有使用Ajax。
如果你的后端上完成时返回的东西,比如我的回声“已发送”你可以这样做:
$.post("php/send_mail.php", function(result){
if(result == 'sent'){
//$('#success').slideDown('slow'); -My code
//$('#submit').hide(); -My code
$.fancybox.close();
}
});
只有在你的情况,你会想这样做$ .fancybox.close()
如果你通过$ .ajax而不是.post,你可以使用成功:代替。
对不起,如果这没有帮助。
马克,
当你说执行后,我假定你的意思是你想要的fancybox只要发送请求(或接近的时间尽可能)关闭?我假设你正在序列化fancyBox的部分作为POST的一部分,并且不想太早关闭它。
在这种情况下,我会充分利用jQuery.ajax beforeSend回调关闭对话框之前送出的请求:
$.ajax({
beforeSend: function() {
//close fancybox here
}
});
XMLHttpRequest对象是在这一点上创建的,所以不应该有对请求有任何影响。
--Andrew
如何隐藏窗体,窗体部件移动到所述主体元件之下,然后调用form.submit()。
我不确定要理解你的问题,但我注意到当fancybox以很多链接打开时,在fancybox的title属性中动态创建的按钮,这些元素不在你的页面的DOM中。 而且你不能与你的页面元素进行交互。
我不知道你如何创建你的行动按钮(如“封闭项”,“删除项目”),也许你应该解释,来帮助我们来帮助你:)
我有同样的问题,你有。我有一个很好的解决方案如下。 如果我像往常一样使用php post codeigniter
'<?php
if ($this->input->post())
{
*after finishing the action use the below code
echo "<script> parent.jQuery.fancybox.close(); </script>";
}'
?>
//if you want to refresh the parent window use parent.location.reload(); before close the //fancy box
不......我不需要序列化任何东西。它不使用jQuery.ajax。这是一种常规的旧形式。我想当你点击按钮时,它需要去执行'