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 相关文章推荐
JavaScript页面刷新与弹出窗口问题的解决方法
Mar 02 Javascript
jQuery无刷新切换主题皮肤实例讲解
Oct 21 Javascript
Node.js重新刷新session过期时间的方法
Feb 04 Javascript
JS日期对象简单操作(获取当前年份、星期、时间)
Oct 26 Javascript
Angular.JS中的指令引用template与指令当做属性详解
Mar 30 Javascript
Vue filters过滤器的使用方法
Jul 14 Javascript
JS中常用的消息框总结
Feb 24 Javascript
vue使用技巧及vue项目中遇到的问题
Jun 04 Javascript
在vue中获取token,并将token写进header的方法
Sep 26 Javascript
基于vue 实现表单中password输入的显示与隐藏功能
Jul 19 Javascript
JS使用H5实现图片预览功能
Sep 30 Javascript
javascript实现切割轮播效果
Nov 28 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 数组基础知识小结
2010/08/20 PHP
PHP实现图片旋转效果实例代码
2014/10/01 PHP
分享下php5类中三种数据类型的区别
2015/01/26 PHP
php实现和c#一致的DES加密解密实例
2017/07/24 PHP
PHP 进度条函数的简单实例
2017/09/19 PHP
PHP设计模式之工厂方法设计模式实例分析
2018/04/25 PHP
thinkPHP框架实现生成条形码的方法示例
2018/06/06 PHP
javascript String 对象
2008/04/25 Javascript
Javascript的匿名函数小结
2009/12/31 Javascript
JSON 教程 json入门学习笔记
2020/09/22 Javascript
什么是Node.js?Node.js详细介绍
2014/06/01 Javascript
Javascript学习笔记之 对象篇(三) : hasOwnProperty
2014/06/24 Javascript
使用do...while的方法输入一个月中所有的周日(实例代码)
2016/07/22 Javascript
Node做中转服务器转发接口
2017/10/18 Javascript
基于vue开发的在线付费课程应用过程
2018/01/25 Javascript
解决淘宝cnpm 安装后cnpm不是内部或外部命令的问题
2018/05/17 Javascript
基于vue循环列表时点击跳转页面的方法
2018/08/31 Javascript
JavaScript读写二进制数据的方法详解
2018/09/09 Javascript
vue服务端渲染缓存应用详解
2018/09/12 Javascript
Vue 进阶之路(三)
2019/04/18 Javascript
[54:47]Liquid vs VP Supermajor决赛 BO 第五场 6.10
2018/07/05 DOTA
pyv8学习python和javascript变量进行交互
2013/12/04 Python
Python中的Classes和Metaclasses详解
2015/04/02 Python
利用Python演示数型数据结构的教程
2015/04/03 Python
初学Python函数的笔记整理
2015/04/07 Python
Python实现的将文件每一列写入列表功能示例【测试可用】
2018/03/19 Python
实例分析python3实现并发访问水平切分表
2018/09/29 Python
Python爬取破解无线网络wifi密码过程解析
2019/09/17 Python
澳洲国民品牌乡村路折扣店:Country Road & Trenery Outlet
2018/04/19 全球购物
先进事迹报告会主持词
2014/04/02 职场文书
物业管理专业求职信
2014/06/11 职场文书
法院授权委托书格式
2014/09/28 职场文书
运动会报道稿300字
2014/10/02 职场文书
2015暑期爱心支教策划书
2015/07/14 职场文书
终止合同协议书范本
2016/03/22 职场文书
redis限流的实际应用
2021/04/24 Redis