javascript – 使用jQuery在IE10中动态提交文件上传表单
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了javascript – 使用jQuery在IE10中动态提交文件上传表单,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1573字,纯文字阅读大概需要3分钟。
内容图文
![javascript – 使用jQuery在IE10中动态提交文件上传表单](/upload/InfoBanner/zyjiaocheng/756/a1b1979cf1ea4ce4bd0178ddb8e977da.jpg)
我有一个表单,其唯一目的是上传文件,但出于用户体验的原因,我需要一个漂亮的按钮:
>加载文件对话框
>选择文件后自动提交表单
原始解决方案类似于this JSFiddle,您可以在其中链接加载文件对话框,然后侦听对话框的更改事件以自动提交表单:
$("input[type=file]").on("change", function () {
// auto-submit form
$("form").submit();
});
$("#my-nice-looking-button").on("click", function (e) {
e.preventDefault();
// load file dialog
$("input[type=file]").trigger("click");
});
如果您尝试这个小提琴,它将在IE9,Chrome,Firefox等中运行,但它在Internet Explorer 10中不起作用.所有JavaScript功能都有效,包括表单的提交事件被触发.但是,浏览器永远不会将表单数据POST到服务器;它只是坐在那里.
IE10中是否内置了一些安全保护措施或文件上传限制,以防止其工作?
解决方法:
事实证明,是的,IE10不允许您以编程方式加载文件对话框并在文件对话框上的更改事件后自动提交表单.据推测,一个或另一个将起作用,但不是两个都有效.除了我自己的实验之外,我还没有找到任何支持此声明的文档.
我找到的解决方案是使用CSS来设置文件对话框按钮的样式,使其不可见,但是放在漂亮的按钮的顶部,这样当你认为你点击按钮时,你实际上是在点击在文件对话框的“选择”按钮上:
input[type=file] {
/* positioning strategies will vary depending on design */
font-size: 25px;
position: relative;
top: -50px;
left: -10px;
/* make it invisible! */
opacity: 0;
/* make the cursor act like it's hovering over an anchor tag */
cursor: pointer;
cursor: hand;
}
然后你只需要听取更改事件并像以前一样提交表单:
$("input[type=file]").on("change", function () {
// auto-submit form
$("form").submit();
});
这样做意味着您“有机地”加载文件对话框,IE10允许它发生并允许您自动提交表单.
此解决方案也适用于WebKit和Firefox.
内容总结
以上是互联网集市为您收集整理的javascript – 使用jQuery在IE10中动态提交文件上传表单全部内容,希望文章能够帮你解决javascript – 使用jQuery在IE10中动态提交文件上传表单所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。