我不喜欢这个解决方案,所以我会发布我自己的调查。
为什么写代码1. .on("click", ... 2. e.preventDefault 3. $.ajax 4. this.href只是为了呼吁成功的fancybox,已经有all this functions inside?
如果您决定AJAX,而不是使用iframe的(如在接受的答案),你可以简单地添加type属性fancybox()调用,因为它是beening检查,并通过所有其他
$('.preview2').fancybox({
type: "ajax",
ajax: {
data: $('#postp').serialize()
// url: "someurl.php" not needed here, it's taken from href
// if you need it, e.g. you have a button, not a link
// use "href" property that overrides everything
// not attribute, cause it's invalid
}
// href: "url_to_add_or_override_existing_one",
// all other effects
// afterLoad: function() { // other cool stuff }
});
编辑作为@JFK指出这是不够的,每次点击链接时都必须获取表单数据,因此需要beforeLoad()而不是data。Finnaly:
$('.preview2').fancybox({
type: "ajax",
beforeLoad: function() {
this.ajax.data = $('#postp').serialize();
}
});
您可以删除所有data-* atrributes太
KISS