Extjs Vtype 基础学习

EXT2.0  Vtype中实现了四种基本验证方式:
1.alpha 验证是否包含除字母之外的其他字符
2.alphanum 验证是否包含除字母和数字之外的其他字符。
3.email  验证是否是有效的email地址。
4. url 验证是否为有效的url地址格式
============================================================
如果需要使用Vtype做一些更为复杂的验证,可以自己定义新的验证方式,格式如下:

Ext.apply(Ext.form.VTypes,{
funName: function(value){

}
});

================================================================================
funName为Vtype验证的方法名,function(value)里面写具体验证的实现。下面提供一个实现新密码重复验证的Vtype验证方法实例,首先扩展Vtype验证方式:

//密码确认验证
Ext.apply(Ext.form.VTypes, {
	password : function(val, field) {
		if (field.confirmTo) {
                     //得到被绑定验证的输入框
			var pwd = Ext.get(field.confirmTo);
                     //判断两次输入的值是否相等
			if (val.trim() == pwd.getValue().trim()) {
				return true;
			} else {
				return false;
			}
			return false;
		}
	}
});

    接着,在需要做密码重复验证的地方加入该Vtype,示例如下:

 

	// 修改密码窗体定义
	var passwordForm = new Ext.FormPanel({
		title : '密码修改',
		labelAlign : 'right',
		labelWidth : 80,
		frame : true,
		autoHeight : true,
		monitorValid:true,
		items : [ {
			xtype : 'textfield',
			inputType : 'password',
			fieldLabel : '旧密码',
			name : 'oldPassword',
			allowBlank : false,
			blanktext : '请输入原先的密码'
		}, {
			xtype : 'textfield',
			inputType : 'password',
			fieldLabel : '新密码',
			name : 'password',
			id : 'password',
			minLength:5,
			allowBlank : false,
			blanktext : '密码不能为空'
		}, {
			xtype : 'textfield',
			inputType : 'password',
			minLength:5,
			fieldLabel : '重复新密码',
			name : 'passwordRepeat',
			allowBlank : false,
			blanktext : '请重复一遍新密码',
			vtype : 'password',  //这里绑定刚才实现的Vtype
			vtypeText : "两次密码不一致!",
			confirmTo : 'password'  
		} ],
		buttons : [{
			text :'修改',
			formBind : true,
			handler :function(){
				passwordForm.getForm().submit({
					url : 'changePassword.do',
					success : function(f, action) {
						Ext.Msg.alert('成功','密码修改成功');
						passwordWin.hide();
						usergrid.getStore().reload();
						passwordForm.getForm().reset();
					},
					failure : function() {
						Ext.Msg.alert('错误', "修改失败!");
					}
				});
			}
		}]

	});
 

 

 

另外在使用Vtype进行验证的时候需要注意,在使用之前应该在Ext.onReady语句后面加入Ext.QuickTips.init();指定统一提示错误消息,否则可能错误消息不显示。

 

你可能感兴趣的:(ext,vtype)