Ich habe ein Anmeldeformular mit einem Textfeld für den Benutzernamen. Zu diesem Textfeld hinzugefügt ich eine benutzerdefinierte Validator-Funktion die Verfügbarkeit für den ausgewählten Benutzernamen zu überprüfen:ExtJS 6: Validator auf einem Textfeld funktioniert nicht richtig
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.';
}
)
}
Dies ist wahrscheinlich es tun sollten. Aber es tut nicht. ich einen gebrochenen Fehler angezeigt wird, zeigt der Prüfer immer ungültig und die Meldung nicht angezeigt wird:
Wenn ich die Antwort überprüfen bekomme ich den richtigen Wert vom Server. Was fehlt mir hier?
Vielen Dank im Voraus.
See: http://stackoverflow.com/questions/14220321/how-do-i-return-the-response-from-an-asynchronous-call/14220323#14220323 –
Siehe: http: // stackoverflow.com/a/8121254 –
Vielen Dank. Ich glaube, ich habe das übersehen. – xdn