Extjs 清空 inputType:'file'里的值

文件上传是WEB系统一个基本功能,在一个Form提交到服务器后,如果form的contentType是“multipart/form-data”类型,服务器就会认为这是文件提交。上传文件一般都是单独处理,不能同时处理Form中的其它表单。但是后台可以通过一定手段得到文件输入流之外的表单数据。比如邮件系统中处理附件时候,同时也处理了收件人,标题,内容等信息。来看下ExtJS中怎么实现这样的功能:
   按正常方式创建一个FormPanel, 同时需要加入一个属性:fileUpload,当这个属性为真时,就会声明当前FORM是一个带上传的FORM,其实就是把contentType改为“multipart/form-data”。
   有了上传的容器,就可以在items属性中加入一个文件选择控件了,同样很简单,用正常的TextField来处理,指定inputType为"file"类型即可:
 
   new Ext.form.TextField({
       allowBlank:false,
       fieldLabel: '文件',
       id:'uploadFile',
       name:'uploadFile',
       anchor:'90%',
       inputType:'file'
     })   
    这时候,这个Form已经能够进行选择文件并上传了。
   
   接下来的问题是,一般编辑框在新增后都不会关闭,而是清空所有表单并允许继续增加,很自然的我们会调用this.form.reset()来清空当前form,但是很不幸,你会发现在IE下,选择的文件并没有从编辑框中消失,这个问题在纯HTML的表单中如果有类型为reset的按钮,在点击了reset后是会被清空的。
   其实,FormPanel的本质也是一个FORM, 因此可以用处理html表单的办法来处理这个问题:
   items中增加一个JS对象:
     {html:'<input id="resetForm" type=reset style="display:none;">',border:false}
   注意使用了样式display,并设置为none来告诉FormPanel不要显示这个表单。
   然后就可以调用document.getElementById('resetForm').click(),调用后,文件选择控件中的文件名就正常清除掉了。

转载于:https://www.cnblogs.com/280850911/archive/2012/11/17/2775059.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值