我想用TextField异步验证一下用户输入的密码是否和数据库中的一致,后台代码没问题,就是验证不通过.这是textfield的部分: {
xtype: "textfield",
fieldLabel: '原密码',
id: 'originalPwd',
maxLength: 12,
style: 'font-size: 15px',
inputType: 'password',
allowBlank: false,
validationEvent: 'blur',
validationDelay: 500,
invalidText: '原密码错误',
validator: validOldPwd
}
这是validOldPwd函数:function validOldPwd(org_pwd) {
Ext.Ajax.request({
url: '/User/ValidOriginalPassword',
params: {
vpassword: org_pwd,
vloginname: Ext.getCmp('loginname').getValue()
},
success: function(response, option) {
var obj = Ext.decode(response.responseText);
return obj.success;
},
failure: function(response, option) {
if (response.status != 404) {
var obj = Ext.decode(response.responseText);
Ext.getCmp('changePwdError').setText(obj.msg);
}
return false;
}
});
};
我感觉validator非要接收函数的bool型返回值为true是才验证通过,但是validOldPwd函数在blur事件触发了,validator拿函数返回值的时候还没有返回值,不知道是不是这个原因造成的。请大家多多指教哇!
这个validator是何时拿函数的返回值啊?
xtype: "textfield",
fieldLabel: '原密码',
id: 'originalPwd',
maxLength: 12,
style: 'font-size: 15px',
inputType: 'password',
allowBlank: false,
validationEvent: 'blur',
validationDelay: 500,
invalidText: '原密码错误',
validator: validOldPwd
}
这是validOldPwd函数:function validOldPwd(org_pwd) {
Ext.Ajax.request({
url: '/User/ValidOriginalPassword',
params: {
vpassword: org_pwd,
vloginname: Ext.getCmp('loginname').getValue()
},
success: function(response, option) {
var obj = Ext.decode(response.responseText);
return obj.success;
},
failure: function(response, option) {
if (response.status != 404) {
var obj = Ext.decode(response.responseText);
Ext.getCmp('changePwdError').setText(obj.msg);
}
return false;
}
});
};
我感觉validator非要接收函数的bool型返回值为true是才验证通过,但是validOldPwd函数在blur事件触发了,validator拿函数返回值的时候还没有返回值,不知道是不是这个原因造成的。请大家多多指教哇!
这个validator是何时拿函数的返回值啊?
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货