extjs 修改密码验证

<script type="text/javascript">
    	//修改密码
    	function modifyPwd(){
    		Ext.QuickTips.init();
            Ext.form.Field.prototype.msgTarget = 'title';

			Ext.apply(Ext.form.VTypes, {
     			repetition: function(val, field) {     //返回true,则验证通过,否则验证失败
         			if (field.repetition) {               //如果表单有使用repetition配置,repetition配置是一个JSON对象,该对象提供了一个名为targetCmpId的字段,该字段指定了需要进行比较的另一个组件ID。
             			var cmp = Ext.getCmp(field.repetition.targetCmpId);   //通过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;
             		    }
        	  		}
     		 	},
				repetitionText: '新密码和确认密码必须一致!'
 			}) 
    		var modifyPwdWin = new Ext.Window( {
	            layout : 'fit',
	            width : 400,
	            height : 180,
	            resizable:false,
	            closeAction : 'hide',
	            plain : true,
	            title : '修改密码',
	            modal:true, 
	            items : new Ext.FormPanel({
	            	labelWidth : 55,
	            	frame : true,
	            	nocache : true,
	    			bodyStyle : 'padding:5px 5px 0',
	    			width : 390,
	    			waitMsgTarget : true,
	    			defaults : {
	       				width : 230,
	       				allowBlank:false,
	       				msgTarget:'title',  
             			minLength:4,  
             			minLengthText:'密码不能少于4位',  
            		    maxLength:10,  
             			maxLengthText:'密码不能超过10位'
	   				},
	   				defaultType : 'textfield',
	   				items:[{
	   					fieldLabel : '旧密码',
	   					id:'oldPwd',
	        			name : 'oldPwd',
	        			inputType:"password",
	        			blankText:'密码不能为空'
	   				},{
	   					fieldLabel : '新密码',
	   					id:'newPwd',
	        			name : 'newPwd',
	        			inputType:"password",
	        			blankText:'密码不能为空'
	   				},{
	   					fieldLabel : '确认密码',
	   					id:'verifyPwd',
	       				name : 'verifyPwd',
	       				inputType:"password",
	       				blankText:'密码不能为空',
	        			[color=red]vtype: 'repetition',  //指定repetition验证类型
                      	repetition: { targetCmpId: 'newPwd' }  //配置repetition验证,提供目标组件(表单)ID [/color]
	   				}]
	            }),
	            buttonAlign:'center',
	            buttons : [ {
	                text : '确定',
	                disabled : false,
	                handler : function() {
	                	var oldPwd = Ext.get('oldPwd').dom.value;
	                	var newPwd = Ext.get('newPwd').dom.value;
	                	var verifyPwd = Ext.get('verifyPwd').dom.value;
                		Ext.Ajax.request({
                			url:'../login/modifyPwd',
                			params:{newPwd:newPwd,oldPwd:oldPwd},
                			success:function(response,option){
                				var respText = Ext.util.JSON.decode(response.responseText); 
                				var flag = respText.success;
                				var errorMsg = respText.errors;
                				if(flag){
                					Ext.Msg.alert("信息提示","密码修改成功!");
                					modifyPwdWin.hide();
                				}else{
                					Ext.Msg.alert("信息提示","密码修改失败,旧密码和数据库中密码必须一致!");
                				}
                			},
                			failure:function(response,option){
                				Ext.Msg.alert("信息提示","密码修改失败!");
                			}
                		});
	                }
	            }, {
	                text : '取消',
	                handler : function() {
	                	modifyPwdWin.hide();
	                }
	            }]
	        });
	        modifyPwdWin.show();
	    }   
    </script>

    修改密码时需要判断新密码和确认密码是否一致,需要重写ext的vtype

你可能感兴趣的:(修改密码验证,extjs 修改密码验证)