js动态在form上插入enctype=multipart/form-data的问题


Posted in Javascript onMay 24, 2012

我们都知道要让form能提交文件,需要在form上指定enctype=multipart/form-data的attribute,这样才能上传文件,关于enctype的文章很多,就不再做解释。

问题是因为使用了MVC的Html.BeginForm()来输出表单代码,默认是没有加入enctype的,

@using (Html.BeginForm()) { 
}

在PartialView中有一个<input type="file" />用来上传文件,又不想为了这个PartialView去修改父页面的Html.BeginForm(),我的做法是在PartialView中用脚本来为form加入enctype:
$(function(){ 
$('#file').parents('form').attr('enctype', 'multipart/form-data'); 
});

最近的主流浏览器都测试通过没问题,唯独IE的几个旧版本出问题,试了手工在Html.BeginForm()中加入enctype是可以解决问题的,说明问题出在以上的脚本。多方查找终于发现出题出现在于IE6,7,8不支持直接attr('enctype', 'multipart/form-data'),而是设置dom属性encoding='multipart/form-data',最终的脚本代码修改为:
$(function () { 
$('#file').parents('form').attr('enctype', 'multipart/form-data').get(0).encoding = 'multipart/form-data'; 
});
Javascript 相关文章推荐
JS去掉第一个字符和最后一个字符的实现代码
Feb 20 Javascript
Jquery的基本对象转换和文档加载用法实例
Feb 25 Javascript
jQuery DOM插入节点操作指南
Mar 03 Javascript
JQuery Mobile 弹出式登录框的实现方法
May 28 Javascript
jquery自动补齐功能插件flexselect用法示例
Aug 06 Javascript
详解小程序输入框闪烁及重影BUG解决方案
Aug 31 Javascript
原生JS实现自定义下拉单选选择框功能
Oct 12 Javascript
如何使用electron-builder及electron-updater给项目配置自动更新
Dec 24 Javascript
微信小程序实现一张或多张图片上传(云开发)
Sep 25 Javascript
js绘制一条直线并旋转45度
Aug 21 Javascript
Vue实现开关按钮拖拽效果
Sep 22 Javascript
vant 中van-list的用法说明
Nov 11 Javascript
javascript中关于break,continue的特殊用法与介绍
May 24 #Javascript
网页编辑器ckeditor和ckfinder配置步骤分享
May 24 #Javascript
JavaScript之编码规范 推荐
May 23 #Javascript
javascript的数据类型、字面量、变量介绍
May 23 #Javascript
网页源代码保护(禁止右键、复制、另存为、查看源文件)
May 23 #Javascript
通过js动态操作table(新增,删除相关列信息)
May 23 #Javascript
JavaScript基础语法让人疑惑的地方小结
May 23 #Javascript
You might like
PHP用PDO如何封装简单易用的DB类详解
2017/07/30 PHP
Laravel框架实现利用中间件进行操作日志记录功能
2018/06/06 PHP
浅谈PHP封装CURL
2019/03/06 PHP
JavaScript isPrototypeOf和hasOwnProperty使用区别
2010/03/04 Javascript
仿当当网淘宝网等主流电子商务网站商品分类导航菜单
2013/09/25 Javascript
对Jquery中的ajax再封装,简化操作示例
2014/02/12 Javascript
Node.js插件的正确编写方式
2014/08/03 Javascript
js实现鼠标滚轮控制图片缩放效果的方法
2015/02/20 Javascript
jQuery定义插件的方法
2015/12/18 Javascript
Nodejs获取网络数据并生成Excel表格
2020/03/31 NodeJs
浅述Javascript的外部对象
2016/12/07 Javascript
JS中用try catch对代码运行的性能影响分析
2016/12/26 Javascript
详解node nvm进行node多版本管理
2017/10/21 Javascript
vue 使用eventBus实现同级组件的通讯
2018/03/02 Javascript
jQuery实现浏览器之间跳转并传递参数功能【支持中文字符】
2018/03/28 jQuery
React路由管理之React Router总结
2018/05/10 Javascript
JS实现简单的星期格式转换功能示例
2018/07/23 Javascript
JS获取并处理php数组的方法实例分析
2018/09/04 Javascript
基于Vue组件化的日期联动选择器功能的实现代码
2018/11/30 Javascript
vue element-ui实现动态面包屑导航
2019/12/23 Javascript
原生js实现贪吃蛇游戏
2020/10/26 Javascript
[04:27]DOTA2官方论坛水友赛集锦
2013/09/16 DOTA
利用Django框架中select_related和prefetch_related函数对数据库查询优化
2015/04/01 Python
python3实现ftp服务功能(服务端 For Linux)
2017/03/24 Python
Python标准库shutil用法实例详解
2018/08/13 Python
对python中xlsx,csv以及json文件的相互转化方法详解
2018/12/25 Python
Python实现多态、协议和鸭子类型的代码详解
2019/05/05 Python
python3获取当前目录的实现方法
2019/07/29 Python
python输出数学符号实例
2020/05/11 Python
武汉世纪畅想数字传播有限公司.NET笔试题
2014/07/22 面试题
施惠特软件测试面试题以及笔试题
2015/05/13 面试题
给实习单位的感谢信
2014/02/01 职场文书
反邪教宣传工作方案
2014/05/07 职场文书
小学数学教研活动总结
2014/07/01 职场文书
全陪导游词
2015/02/04 职场文书
导游词之北京明十三陵
2019/10/28 职场文书