javascript - 使用 iframe 内的按钮重新加载 iframe 外的 div

标签 javascript jquery html css

我目前有:

<script>
var btn = document.getElementById("doReload");
btn.onclick = function(){

    setTimeout(function(){
        $("#div1").load("News.php");
    }, 5000);
}

</script>
<form action="" method="POST" enctype="multipart/form-data">
<input type="file" name="image" />
<input id="doReload" type="submit"/>
</form>

所有这些都使用 src= 加载到 iframe 中,当我单击提交按钮时,我希望它执行文件上传(目前正在执行),然后我希望它重新加载 News.php 到 Div1 以显示更新的文件,关于如何执行此操作的任何想法?

最佳答案

好的,所以问题是您的表单在超时执行函数之前提交。

您应该使用 jQuery 提交表单 ( jQuery submit ) 和 event.preventDefault() 以阻止提交按钮实际重新加载页面。

这可以通过像这样更改代码来完成:

document.getElementById("doReload").addEventListener("click", function(e) {
  e.preventDefault();
  var form = this.parentElement;
  var xhr = new XMLHttpRequest();
  xhr.open(form.method, form.action);
  xhr.addEventListener("readystatechange", function() {
    if (xhr.readyState == 4 && xhr.status == 200) $("#div1").load("News.php");
  })
  xhr.send(new FormData(form));
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
<form action="upload/" method="POST" enctype="multipart/form-data">
  <input type="file" name="image" />
  <input id="doReload" type="submit" />
</form>

(通过聊天解决了一些其他的小修改,不过这是最终的工作代码)

关于javascript - 使用 iframe 内的按钮重新加载 iframe 外的 div,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28573319/

相关文章:

javascript - 如何在另一个函数中调用setinterval函数不起作用

javascript - DropDown Menu 不会显示超过一秒钟..不工作。

python - 滚动到网页底部

html - 只有中间的div固定宽度,三个div如何展开父元素?

javascript - Mongodb find() 只包含非空数组

javascript - 数组中出现次数最多的或最先选择的

javascript - 将jQuery变量传递给PHP以进行错误处理

javascript - 在 For 循环中使用 Math.max() 时出现问题

javascript - 如何使用javascript在对象数组中执行计算

jquery - RegEx 只有数字和单位添加退格问题