Я сделал свой собственный custon vtype, который выполняет запрос ajax, чтобы проверить, доступно ли имя пользователя в базе данных:
Ext.apply(Ext.form.VTypes, {
username: function(val, field) {
var conn = new Ext.data.Connection();
conn.request({
url: '/account/CheckUsernameAvailability',
params: { "username": val },
success: function(data) {
console.log("field = ", field);
console.log(data.responseText);
},
failure: function() {
Ext.Msg.alert('Status', 'Unable to add vote');
}
});
},
usernameText: 'Username is already taken'
});
Проблема в том, что запрос явно асинхронный, поэтому я не могу просто вернуть true, если data.responseText в порядке. В этой функции мне нужно иметь возможность установить «поле», чтобы быть действительным.
Но я не могу найти ничего в Ext API, который показывает, как это сделать? (наверное, я что-то упускаю)