我有一些表格,我正在装入Fancybox。当我用ajax提交这个,并且我获得成功时,我想在这个Fancybox窗口中重新加载同一页面,但我不知道如何。
我已经尝试$.fancybox.update()
但是没有用。我正在使用Fancybox 2.
有人可以帮忙吗?
这是我的代码:
父页面上的:
<script type="text/javascript" charset="utf-8">
$("a.open-modal").fancybox({type: 'ajax'});
</script>
<a class="open-modal" href="edita_cadastro_imagens.asp?codProd=<%= rs_Pesq("codProd")%>&codCor=<%= rs_Pesq("codCor")%><%=str_pesq%>&ref=<%= rs_Pesq("referencia")%>"><i class="fa fa-camera fa-lg"></i></a>
以下是该页面的代码:edita_cadastro_imagens.asp
我的Ajax代码:
<script type="text/javascript">
$(document).on('submit', '#f1', function(event) {
event.preventDefault();
var formData = new FormData($(this)[0]);
console.log(formData);
$.ajax({
url: "upload_produtos.asp?cod_prod=<%=codProd%>&cod_cor=<%=codCor%>&Num_Img=1",
type: "POST",
data: formData,
async: false,
cache: false,
contentType: false,
processData: false,
success: function(data){
if (data == "erro") {
alert("erro")
} else {
//$.fancybox.close();
$.fancybox.update();
}
}
});
});
</script>
和我的表格:
<form name="f1" id="f1" action="" method="post" enctype="multipart/form-data">
<div class="div_coluna col_image">
<% if objFSO.FileExists(Server.MapPath("../produtos/mini") & "/"& codProd&"_"&codCor&" (1).jpg") then %>
<img src="../produtos/mini/<%= codProd%>_<%= codCor%> (1).jpg" border="0"/>
<% else %>
<img src= "imagens/imgNDisp.png" border="0" height="49px" width="70px"/>
<% end if %>
</div>
<div class="div_coluna col_field">
<input type="file" name="txtArquivo1" accept="image/jpg" class="small_form_control" style="width:90%">
</div>
<div class="div_coluna col_bt">
<button class="button">ENVIAR</button>
</div>
<div class="clear"></div>
</form>
答案 0 :(得分:2)
也许我来不及添加我的解决方案。但是迟到总比没有好,对吧? :P
我的情况是:我在我加载的ajax fancybox上有一个刷新按钮,我想通过点击这个刷新按钮重新加载fancybox内容。 这个概念是点击fancybox触发器。
$('body').on('click','#refresh',function(){
$('.fancybox').trigger('click');
});
希望有所帮助
答案 1 :(得分:1)
如果你的ajax代码在fancybox内容中,这是一个iframe,也许这可能会有效:
success: function (data) {
if (data == "erro") {
alert("erro")
} else {
location.reload();
}
}
答案 2 :(得分:1)
如果您不使用iframe
,可以尝试此操作jQuery.fancybox({'content' : html});