Ich versuche, XPATH Auswertung in mein Formular hinzuzufügen. Wenn der Benutzer XPATH ausfüllt, wird er auf einem Server mit AJAX ausgewertet und gibt dann true
oder false
zurück. Das Problem ist, dass diese Funktion immer undefined
zurückgibt. Ich nehme an, es liegt an asynchronem Verhalten von JS, also habe ich $.when
verwendet, aber es hat nicht geholfen.Funktion gibt nichts zurück (async?)
function evalXpath(xpath) {
var test = $.post('/api/test-xpath/', {'xpath': xpath});
test.done(function (data) {
console.log('BEFORE RETURN '+Boolean(data['success']));
return Boolean(data['success']);
})
}
$(document).ready(function() {
$('#id_xpath').on('change', function() {
var xpath = $("#id_xpath").val();
$.when(evalXpath(xpath)).done(function (evaluated) {
console.log('RETURNED '+evaluated);
$('#xpath-valid').text(evaluated ? 'VALID' : 'INVALID');
});
});
});
Die Konsolenausgabe (wie Sie sehen können, ist es noch asynchronious):
Haben Sie irgendwelche Ideen?