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+ACTIVEX实现网页选择本地目录路径对话框
Mar 18 Javascript
jquery实现可拖动DIV自定义保存到数据的实例
Nov 20 Javascript
javascript/jquery获取地址栏url参数的方法
Mar 05 Javascript
js获取鼠标点击的位置实现思路及代码
May 09 Javascript
JavaScript实现当网页加载完成后执行指定函数的方法
Mar 21 Javascript
JavaScript的Polymer框架中dom-repeat与VM的相关操作
Jul 29 Javascript
JavaScript如何实现跨域请求
Aug 05 Javascript
微信小程序页面传值实例分析
Apr 19 Javascript
vue-cli3环境变量与分环境打包的方法示例
Feb 18 Javascript
在Vue项目中使用snapshot测试的具体使用
Apr 16 Javascript
如何用JS模拟实现数组的map方法
Jul 30 Javascript
javascript运行机制之执行顺序理解
Aug 03 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 文件系统详解
2012/09/13 PHP
smarty模板引擎之配置文件数据和保留数据
2015/03/30 PHP
PHP遍历目录文件的常用方法小结
2017/02/03 PHP
利用PHP访问MySql数据库的逻辑操作以及增删改查的实例讲解
2017/08/30 PHP
Laravel学习教程之View模块详解
2017/09/18 PHP
javascript之对系统的toFixed()方法的修正
2007/05/08 Javascript
js调试工具 Javascript Debug Toolkit 2.0.0版本发布
2008/12/02 Javascript
javascript折半查找详解
2015/01/26 Javascript
angularJS 入门基础
2015/02/09 Javascript
javascript定时器完整实例
2015/02/10 Javascript
JavaScript通过字典进行字符串翻译转换的方法
2015/03/19 Javascript
JS中的THIS和WINDOW.EVENT.SRCELEMENT详解
2015/05/25 Javascript
javascript显示中文日期的方法
2015/06/18 Javascript
jquery背景跟随鼠标滑动导航
2015/11/20 Javascript
jQuery制作圣诞主题页面 更像是爱情影集
2016/08/10 Javascript
微信小程序 弹幕功能简单实例
2017/02/14 Javascript
JavaScript中常见的八个陷阱总结
2017/06/28 Javascript
JavaScript实现二叉树的先序、中序及后序遍历方法详解
2017/10/26 Javascript
JS基于贪心算法解决背包问题示例
2017/11/27 Javascript
详解Vue单元测试case写法
2018/05/24 Javascript
jquery实现搜索框功能实例详解
2018/07/23 jQuery
小程序云开发实现数据库异步操作同步化
2019/05/18 Javascript
基于Vue的侧边目录组件的实现
2020/02/05 Javascript
[00:27]DOTA2战队VP、Secret贺新春
2018/02/11 DOTA
python条件和循环的使用方法
2013/11/01 Python
Python程序设计入门(3)数组的使用
2014/06/16 Python
快速排序的算法思想及Python版快速排序的实现示例
2016/07/02 Python
Python连接phoenix的方法示例
2017/09/29 Python
Python如何获得百度统计API的数据并发送邮件示例代码
2019/01/27 Python
python实现图片转字符小工具
2019/04/30 Python
在python Numpy中求向量和矩阵的范数实例
2019/08/26 Python
Python 3.9的到来到底是意味着什么
2020/10/14 Python
基于css3 animate制作绚丽的动画效果
2015/11/24 HTML / CSS
印度尼西亚在线时尚购物网站:ZALORA印尼
2016/08/02 全球购物
Derek Rose官网:英国高档睡衣、家居服和内衣品牌
2020/01/18 全球购物
学校节能减排方案
2014/06/13 职场文书