<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