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 相关文章推荐
跨浏览器通用、可重用的选项卡tab切换js代码
Sep 20 Javascript
JS限制上传图片大小不使用控件在本地实现
Dec 19 Javascript
JavaScript中setInterval的用法总结
Nov 20 Javascript
setTimeout()与setInterval()方法区别介绍
Dec 24 Javascript
浅谈JavaScript Date日期和时间对象
Dec 29 Javascript
JavaScript实现把数字转换成中文
Jun 29 Javascript
javascript中SetInterval与setTimeout的定时器用法
Aug 24 Javascript
jQuery实现简单的图片查看器
Sep 11 Javascript
Bootstrap表单Form全面解析
Jun 13 Javascript
setTimeout与setInterval的区别浅析
Mar 23 Javascript
vue 中url 链接左边的小图标更改问题
Dec 30 Javascript
微信小程序实现可长按移动控件
Nov 01 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
超强分页类2.0发布,支持自定义风格,默认4种显示模式
2007/01/02 PHP
php不用正则采集速度探究总结
2008/03/24 PHP
php curl 登录163邮箱并抓取邮箱好友列表的代码(经测试)
2011/04/07 PHP
php数组声明、遍历、数组全局变量使用小结
2013/06/05 PHP
使用php统计字符串中中英文字符的个数
2013/06/23 PHP
CodeIgniter上传图片成功的全部过程分享
2013/08/12 PHP
Windows下编译PHP5.4和xdebug全记录
2015/04/03 PHP
初识PHP中的Swoole
2016/04/05 PHP
纯JavaScript实现的完美渐变弹出层效果代码
2010/04/02 Javascript
js+css使DIV始终居于屏幕中间 左下 左上 右上 右下的代码集合
2011/03/10 Javascript
得到form下的所有的input的js代码
2013/11/07 Javascript
JS遍历Json字符串中键值对先转成JSON对象再遍历
2014/08/15 Javascript
Javascript基础教程之关键字和保留字汇总
2015/01/18 Javascript
基于jQuery实现选取月份插件附源码下载
2015/12/28 Javascript
基于JavaScript实现淘宝商品广告效果
2017/08/10 Javascript
Three.js如何用轨迹球插件(trackball)增加对模型的交互功能详解
2017/09/25 Javascript
原生js实现form表单序列化的方法
2018/08/02 Javascript
VUE前端从后台请求过来的数据进行转换数据结构操作
2020/11/11 Javascript
[01:07:41]IG vs VGJ.T 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
使用Python编写爬虫的基本模块及框架使用指南
2016/01/20 Python
python基础之入门必看操作
2017/07/26 Python
Python多进程库multiprocessing中进程池Pool类的使用详解
2017/11/24 Python
Python实现七彩蟒蛇绘制实例代码
2018/01/16 Python
python装饰器深入学习
2018/04/06 Python
python实现写数字文件名的递增保存文件方法
2018/10/25 Python
Giglio英国站:意大利奢侈品购物网
2018/03/06 全球购物
北京银河万佳Java面试题
2012/03/21 面试题
商务专员岗位职责
2013/11/23 职场文书
爱国演讲稿400字
2014/05/07 职场文书
2014领导干部学习焦裕禄同志先进事迹思想汇报
2014/09/19 职场文书
幼师自荐信范文
2015/03/06 职场文书
小学班主任工作总结2015
2015/04/07 职场文书
违纪开除通知书
2015/04/25 职场文书
Pytorch 实现变量类型转换
2021/05/17 Python
mybatis 获取更新记录的id
2022/05/20 Java/Android
Windows Server 2016服务器用户管理及远程授权图文教程
2022/08/14 Servers