我有一个注册表单,其中包含用户名的文本字段。 对于此文本字段,我添加了一个自定义验证器函数来检查所选用户名的可用性:
xtype: 'textfield',
name: 'username',
msgTarget: 'under',
bind: {
fieldLabel: '{texts.username}'
},
allowBlank: false,
minLength: 3,
checkChangeBuffer: 300,
validator: function (value) {
if (value.length < 3) {
return null;
}
Ext.Ajax.request({
method: 'POST',
url: '/rest/availability',
params: {
name: value
}
}).then(
function (result) {
return Ext.JSON.decode(result.responseText) ? true : 'Username already exists';
},
function (response) {
return 'Server issue.';
}
)
}
这应该可以做到。但它没有。 我收到一个错误的错误,验证器显示始终无效,并且不显示消息:
当我检查响应时,我从服务器获得正确的值。 我在这里缺少什么?
提前致谢。
答案 0 :(得分:1)
为了验证通过,您需要返回true。
validator: function(value) {
if(!valid) {
return 'error message';
}
return true; // successfully passed
}