文件上传控件浏览按钮只读
2009-09-29 10:46
204 查看
在使用EXT做文件上传时,上传控件的输入框需要设置为只读,只能通过点击【浏览】按钮来上传文件,禁止用户通过键盘鼠标输入字符,通过设置readonly属性,输入框是不允许用户输入了,但是发现点击【浏览】按钮也不响应了,无法上传文件。
1 html的file研究
在对HTML的file元素做研究,也发现设置readonly会存在同样的问题,网上查了查资料,可以通过禁用鼠标键盘的事件来达到这个效果,代码如下:
甚至可以绕一点弯,设置一个隐藏的file来到达目的,彻底禁止鼠标输入,代码如下:
2 ext的file研究
因此,通过屏蔽ext的file控件的键盘和鼠标事件,应该也可以做到只读效果,但是通过addListerners,添加keydown事件,发现是不起作用的。通过查资料发现,对于Ext.form的命名空间下的所有的控件,起对于键盘鼠标的事件,默认是关闭的,我们必须设置【enableKeyEvents: true】,来开启,然后处理initEvents事件就OK了,示例如下:
3 处理特定键盘事件
对于鼠标单击、移动等等事件,都和Ext.EventObject相关,例如相应键盘中按下的A键:
不允许用户输入大写字母:
1 html的file研究
在对HTML的file元素做研究,也发现设置readonly会存在同样的问题,网上查了查资料,可以通过禁用鼠标键盘的事件来达到这个效果,代码如下:
<input type="file" onpaste="return false" onkeydown="return false">
甚至可以绕一点弯,设置一个隐藏的file来到达目的,彻底禁止鼠标输入,代码如下:
form name=formen> <input type="file" name="picpath" id="picpath" style="display:none" mce_style="display:none" onChange="document.formen.path.value=this.value"> <input name="path" readonly> <input type="button" value="Browse" onclick="document.formen.picpath.click()"> </form>
2 ext的file研究
因此,通过屏蔽ext的file控件的键盘和鼠标事件,应该也可以做到只读效果,但是通过addListerners,添加keydown事件,发现是不起作用的。通过查资料发现,对于Ext.form的命名空间下的所有的控件,起对于键盘鼠标的事件,默认是关闭的,我们必须设置【enableKeyEvents: true】,来开启,然后处理initEvents事件就OK了,示例如下:
new Ext.form.TextField({ xtype : 'fileuploadfield', inputType : 'file', name : 'upFile', id : 'upFile', height : 20, anchor : '95%', fieldLabel : '文件选择', allowBlank : true, enableKeyEvents: true, initEvents : function() { var stopEvent = function(e){ e.stopEvent(); }; this.el.on("keypress", stopEvent, this); this.el.on("keydown", stopEvent, this); this.el.on("contextmenu", stopEvent, this); } })
3 处理特定键盘事件
对于鼠标单击、移动等等事件,都和Ext.EventObject相关,例如相应键盘中按下的A键:
listeners:{ specialkey:function(field,e){ if (e.getKey()==Ext.EventObject.A){ alert(); } } }
不允许用户输入大写字母:
initEvents : function() { var keyPress = function(e){ var blockchars = 'ABCDEFGHIJKMLNOPQRSTUVWXYZ'; var c = e.getCharCode(); if(blockchars.indexOf(String.fromCharCode(c)) != -1){ e.stopEvent(); } }; this.el.on("keypress", keyPress, this); }
相关文章推荐
- 在IE中必须点击input file 控件的浏览按钮才能提交上传,否则没有权限 。js文件报拒绝访问,解决办法是将input file控件定位到你要点击的地方 ,并且input file做成透明的
- 怎样隐藏uploadify上传控件的按钮,然后通过其它控件的事项来触发uploadify控件的文件浏览窗口并现实文件上传功能
- jQuery改变file文件上传控件”浏览“按钮样式
- 在C#.net中做页面上传的程序。用Dhtml的控件:(创建文件上载控件,该控件带有一个文本框和一个浏览按钮。)和类HtmlInputFile的两种方法
- 怎样隐藏uploadify上传控件的按钮,然后通过其它控件的事项来触发uploadify控件的文件浏览窗口并现实文件上传功能
- EXT 3 上传文件控件浏览按钮国际化
- 使用透明效果来自定义文件上传按钮控件样式
- 使用透明效果来自定义文件上传按钮控件样式
- 怎样让上传文本框只读,browser按钮仍能用,并实现文件上传
- input[type=file] 样式美化,input上传按钮美化,使用ajax上传无须控件上传文件
- 如何用图片按钮来代替文件上传控件
- 如何用图片按钮来代替文件上传控件
- 表单上传文件的“浏览”按钮修改
- 解决第二次弹出上传窗口 上传控件的异常(无浏览按钮)
- 浏览选择上传文件的控件 input type=file
- 我们在上传文件时不希望用户有“浏览服务器按钮
- html表单上传文件的“浏览”按钮修改方法
- html表单上传文件的"浏览"按钮
- 如何改变上传文件控件中的"浏览..."为别的文字?
- 如何将上传文件的浏览按钮修改为自定义按钮