2
我正在尝试将XPATH评估添加到我的表单中。当用户填写XPATH时,会在使用AJAX的服务器上评估它,然后返回true
或false
。函数不会返回任何东西(异步?)
问题是这个函数似乎总是返回undefined
。我想这是因为JS的异步行为,所以我用$.when
,但它没有帮助。
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');
});
});
});
控制台输出(因为你可以看到,它仍然asynchronious):
你有什么想法?