网上找的一个例子,稍做了点修改并加上了失去焦点的事件 Ext.onReady(function(){ Ext.QuickTips.init(); Ext.form.Field.prototype.msgTarget = 'side';//提示显示方式 Ext.apply(Ext.form.VTypes, { test1: function(val, field){ //返回true,则验证通过,否则验证失败 if (field.repetition) { var cmp = Ext.getCmp(field.repetition.targetCmpId); if (Ext.isEmpty(cmp)) { Ext.MessageBox.show({ title: '错误', msg: '发生异常错误,指定的组件未找到', icon: Ext.Msg.ERROR, buttons: Ext.Msg.OK }); return false; } if (val == cmp.getValue()) { return true; } else { return false; } } }, test1Text: '两个指定组件的组件值不一样' }); new Ext.form.FormPanel({ renderTo: document.body, title: '注册信息', autoHeight: true, checkboxToggle: true, labelWidth: 85, items: [new Ext.form.TextField({ inputType: 'password', id: 'pass1', maxLength: 6, fieldLabel: '输入密码', allowBlank: false }), new Ext.form.TextField({ inputType: 'password', id: 'pass2', maxLength: 6, fieldLabel: '重复密码', allowBlank: false, listeners: { 'blur': function(f){ alert('失去焦点!'); } }, vtype: 'test1', //指定验证类型 repetition: { targetCmpId: 'pass1' } })] }) });