【发布时间】:2013-11-27 19:48:25
【问题描述】:
我有一个脚本,在用户提交表单后显示 2 个 div 并隐藏 1 个 div。表单的目标是同一页面上的 Iframe。
我想延迟隐藏/显示事件,直到加载 Iframe。我可以通过加载动画来做到这一点,但我不确定如何使用 Hide/Show 脚本来做到这一点。
该脚本与提交函数的工作方式如下:
$(function(){
$('#form_710370').submit(function(e){
e.preventDefault(); // add this
$('#form_container').hide()
$('#mydivhide1, #mydivhide2').show();
return false;
});
});
但是如果我尝试像这样使用加载功能,它不起作用,但它适用于我的加载动画,有什么建议可以说明我做错了什么吗?
$(document).ready(function () {
$('#iframe1').load(function(){
{
$('#form_container').hide()
$('#mydivhide1, #mydivhide2').show()
});
这是有效的加载动画脚本
$(document).ready(function () {
$('#iframe1').on('load', function () {
$('#loader1').hide();
});
});
/ in ready()
$('#form_710370').submit(function(){$('#loader1').show();return true;});
这里是 HTML
<div id="mydivhide1">1111</div>
<div id="mydivhide2">2222</div>
<div id="form_container">
<form id="form_710370" target="iframe" method="post" convert.php">
<input id="Website" name="url1" type="text" value=""/>
<input id="saveForm" type="submit" name="submit" value="submit" />
</form>
</div>
<div id="frameWrap">
<img id="loader1" src="ajax_loader_blue_512.gif" alt="loading gif"/>
<iframe id="iframe1" name="iframe1" src="page.html" > </iframe>
</div>
这里是 CSS
#mydivhide1 {display:none;}
#mydivhide2 {display:none;}
【问题讨论】:
-
一般来说,最好不要为表单本身 preventDefault() ,而是为表单的提交按钮执行此操作,另一方面,您的问题似乎可以通过以下方式轻松解决超时回调。
-
@JoseE 你能告诉我如何在投票中做到这一点吗?我刚学Jquery,以前没学过,谢谢
-
我认为你可以先开始尝试这个答案:stackoverflow.com/questions/5788499/jquery-iframe-load-event
标签: javascript jquery html css iframe