日期:2014-05-16 浏览次数:20489 次
????? 在项目中用户对于不符合业务规则,异常等情况的提示有一个要求: 尽量不使用alert 等弹出框作为提示,而是建议使用浮动框来作为替代。这个从用户体验来讲是一个非常好的建议,因为alert让人觉得很烦,一个一个的弹出让人觉得烦躁、恐惧。 项目中现在的浮动框是用div来实现的加入了比较温和的底色设置比较合适的大小,然后再使用时使用此div组件进行提示,设置div要显示的位置和显示的文字还有一个就是要设置多长时间消失,这个很好用也有很好的用户体验。Ext完全考虑到了这个并且非常优美的进行实现和应用,下面就对此进行学习。
???? Ext默认情况下对tips 浮动框是不显示的,需要增加初始化代码才可以。
?
1. 初始化tips
Ext.QuickTips.init();
?
2. 给组件增加tips信息和tips类型
???
var btn3 = new Ext.Button({ renderTo : Ext.getBody(), text : "Tips", width : "200", tooltip : "tipsTest!", tooltipType : "qtip", });
?
3. 测试效果
当鼠标放在button上时会提示 “tipsTest”
还有当打开tips 提示后 如果textField 组件设置了 ?allowBlank : false 则会提示此组件对应的值不能为空。
?
4. 增加更强大的校验
??? 可以增加字符的长度校验,格式校验等,格式的校验主要通过正则表达式来实现,EXT对常用的规则进行了封装无需自行编写正则表达式,比如URL、email等
?
举例:
name : "password", fieldLabel : "密码", inputType : "password", allowBlank : false, xtype : "textfield", minLength:6, minLengthText:"密码长度不能小于6个字符", maxLength: 10, maxLengthText: "密码长度不能大于10个字符"
?
?上面的代码已经说的很明白了,实现相当简单。
?
小结:
ext对校验的提示和校验的规则和方式做了很好的实现,更好的用户体验,更简单的编码方式。
?
实例:
列出一个包含常用组件和校验的代码:
Ext.onReady(function() { Ext.QuickTips.init() var f = new Ext.FormPanel({ url : 'MyServlet', method : 'post', baseParams : { sex : "男" }, defaults : { width : 230 }, defaultType : 'textfield', title : "Form", width : "700", height : "600", bodyStyle : "padding,6px", frame : true, items : [new Ext.form.TextField({ name : "userName", allowBlank : false, fieldLabel : "用户名" }), { name : "password", fieldLabel : "密码", inputType : "password", allowBlank : false, xtype : "textfield", minLength:6, minLengthText:"密码长度不能小于6个字符", maxLength: 10, maxLengthText: "密码长度不能大于10个字符" }, { name : "photo", fieldLabel : "照片", inputType : "file", allowBlank : false, xtype : "textfield" }, { name : "date", fieldLabel : "日期", width : 200, format : "Y-m-d", value : new Date(), xtype : "datefield" }, { name : "sex", inputValue : "0", boxLabel : "男", allowBlank : false, xtype : "radio", checked : true }, { name : "sex", inputValue : "1", boxLabel : "女", allowBlank : false, xtype : "radio" }, { name : "levle", inputValue : "1", boxLabel : "本科", allowBlank : false, xtype : "checkbox" }, { name : "age", fieldLabel : "年龄", allowBlank : false, xtype : "numberfield", maxValue : 100, minValue : 1 }, new Ext.form.TimeField({ fieldLabel : 'Time', name : 'time', minValue : '8:00am', maxValue : '6:00pm', format : "H:i" }), { fieldLabel : 'Email', name : 'email', vtype : 'email' }, { name : "ta", fieldLabel : "经历", xtype : "textarea", width : 100, height : 50 }, { name : "ta", fieldLabel : "个人简历", xtype : "htmleditor", height : 100, width : 500, enalbeLists : false, enableSourceEdite : true, enableColors : false, enableLinks : true }], buttons : [{ text : "确定", lableAlgin : "left", tooltip :