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 asp.net 获取当前超链接中的文本
Apr 14 Javascript
JQuery 入门实例1
Jun 25 Javascript
表格 隔行换色升级版
Nov 07 Javascript
js RuntimeObject() 获取ie里面自定义函数或者属性的集合
Nov 23 Javascript
javascript for循环从入门到偏门(效率优化+奇特用法)
Aug 01 Javascript
在Google 地图上实现做的标记相连接
Jan 05 Javascript
jquery+css3实现网页背景花瓣随机飘落特效
Aug 17 Javascript
javascript中不易分清的slice,splice和split三个函数
Mar 29 Javascript
实例解析jQuery工具函数
Dec 01 Javascript
详解JSON和JSONP劫持以及解决方法
Mar 08 Javascript
JS常见面试试题总结【去重、遍历、闭包、继承等】
Aug 27 Javascript
JavaScript实现网页动态生成表格
Nov 25 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
虫族 Zerg 魔法科技
2020/03/14 星际争霸
mysqli_set_charset和SET NAMES使用抉择及优劣分析
2013/01/13 PHP
php中OR与|| AND与&amp;&amp;的区别总结
2013/10/26 PHP
WAF的正确bypass
2017/01/05 PHP
Extjs407 getValue()和getRawValue()区别介绍
2013/05/21 Javascript
js实现鼠标拖动图片并兼容IE/FF火狐/谷歌等主流浏览器
2013/06/06 Javascript
JavaScript中Math.SQRT2属性的使用详解
2015/06/14 Javascript
jquery插件pagination实现无刷新ajax分页
2015/09/30 Javascript
js时间戳转为日期格式的方法
2015/12/28 Javascript
详解Bootstrap插件
2016/04/25 Javascript
JavaScript从数组的indexOf()深入之Object的Property机制
2016/05/11 Javascript
详解js的延迟对象、跨域、模板引擎、弹出层、AJAX【附实例下载】
2016/12/19 Javascript
jquery ajaxfileupload异步上传插件
2017/11/21 jQuery
vue加载自定义的js文件方法
2018/03/13 Javascript
React之PureComponent的使用作用
2018/07/10 Javascript
JS Html转义和反转义(html编码和解码)的实现与使用方法总结
2020/03/10 Javascript
解决element-ui的下拉框有值却无法选中的情况
2020/11/07 Javascript
[02:45]DOTA2英雄基础教程 伐木机
2013/12/23 DOTA
Python Requests模拟登录实现图书馆座位自动预约
2018/04/27 Python
python验证码识别教程之灰度处理、二值化、降噪与tesserocr识别
2018/06/04 Python
Python 经典面试题 21 道【不可错过】
2018/09/21 Python
Python+OpenCV实现图像融合的原理及代码
2018/12/03 Python
python3.6 tkinter实现屏保小程序
2019/07/30 Python
Python logging设置和logger解析
2019/08/28 Python
python读文件的步骤
2019/10/08 Python
基于Python数据分析之pandas统计分析
2020/03/03 Python
keras 获取某层输出 获取复用层的多次输出实例
2020/05/23 Python
匡威德国官网:Converse德国
2019/01/26 全球购物
Solaris操作系统的线程机制
2015/07/28 面试题
领导检查欢迎词
2014/01/14 职场文书
模具专业毕业生自荐书范文
2014/02/19 职场文书
小学安全工作汇报材料
2014/08/19 职场文书
离婚协议书应该怎么写
2014/10/12 职场文书
自主招生推荐信怎么写
2015/03/26 职场文书
教师学习心得体会范文
2016/01/21 职场文书
医德医风学习心得体会
2016/01/25 职场文书