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 相关文章推荐
prototype class详解
Sep 07 Javascript
百度地图API之本地搜索与范围搜索
Jul 30 Javascript
jQuery EasyUI Tab 选项卡问题小结
Aug 16 Javascript
详谈js遍历集合(Array,Map,Set)
Apr 06 Javascript
vue 和vue-touch 实现移动端左右导航效果(仿京东移动站导航)
Apr 22 Javascript
jQuery Jsonp跨域模拟搜索引擎
Jun 17 jQuery
jQuery实现选中行变色效果(实例讲解)
Jul 06 jQuery
JavaScript判断日期时间差的实例代码
Mar 01 Javascript
vue视图不更新情况详解
May 16 Javascript
深入学习JavaScript中的bom
May 27 Javascript
基于vue+axios+lrz.js微信端图片压缩上传方法
Jun 25 Javascript
vue将后台数据时间戳转换成日期格式
Jul 31 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实现权限管理功能示例
2017/09/22 PHP
laravel7学习之无限级分类的最新实现方法
2020/09/30 PHP
在模板页面的js使用办法
2010/04/01 Javascript
document.write()及其输出内容的样式、位置控制
2013/08/12 Javascript
node.js中使用q.js实现api的promise化
2014/09/17 Javascript
Jquery简单分页实现方法
2015/07/24 Javascript
JS防止网页被嵌入iframe框架的方法分析
2016/09/13 Javascript
微信小程序 特效菜单抽屉效果实例代码
2017/01/11 Javascript
Bootstrap组合上、下拉框简单实现代码
2017/03/06 Javascript
多个上传文件用js验证文件的格式和大小的方法(推荐)
2017/03/09 Javascript
微信小程序使用Promise简化回调
2018/02/06 Javascript
vue 解决异步数据更新问题
2019/10/29 Javascript
vue实现购物车的监听
2020/04/20 Javascript
深入了解JS之作用域和闭包
2020/06/16 Javascript
vue 解决setTimeOut和setInterval函数无效报错的问题
2020/07/30 Javascript
Python中isnumeric()方法的使用简介
2015/05/19 Python
python简单实现旋转图片的方法
2015/05/30 Python
浅析Python中yield关键词的作用与用法
2016/11/29 Python
使用Python生成XML的方法实例
2017/03/21 Python
Python使用plotly绘制数据图表的方法
2017/07/18 Python
详解Numpy中的数组拼接、合并操作(concatenate, append, stack, hstack, vstack, r_, c_等)
2019/05/27 Python
python基础 range的用法解析
2019/08/23 Python
15行Python代码实现免费发送手机短信推送消息功能
2020/02/27 Python
Python异常原理及异常捕捉实现过程解析
2020/03/25 Python
使用python爬取抖音app视频的实例代码
2020/12/01 Python
Python操作PostgreSql数据库的方法(基本的增删改查)
2020/12/29 Python
中国最大的团购网站:聚划算
2016/09/21 全球购物
End Clothing美国站:英国男士潮牌商城
2018/04/20 全球购物
协议书格式
2014/04/23 职场文书
《她是我的朋友》教学反思
2014/04/26 职场文书
竞选村长演讲稿
2014/04/28 职场文书
会议欢迎标语
2014/06/30 职场文书
2015年教师党员公开承诺书
2015/01/22 职场文书
干部考核工作总结
2015/08/12 职场文书
2016年“世界环境日”校园广播稿
2015/12/18 职场文书
mysql函数之截取字符串的实现
2022/08/14 MySQL