Javascript console.log可以工作,但输入值未定义

Javascript console.log可以工作,但输入值未定义,javascript,undefined,Javascript,Undefined,我在使用一个简单的函数时遇到了一些问题,该函数通过ajax调用获取特定类别的链接,然后将值放入输入 我的Ajax调用: function GetCategoryInfo(){ var form = document.getElementById('add-info'); var formData = new FormData(form); formData.append('caller', 'Info'); $.ajax({ url: '../inc/call.php', enctyp

我在使用一个简单的函数时遇到了一些问题,该函数通过ajax调用获取特定类别的链接,然后将值放入输入

我的Ajax调用:

function GetCategoryInfo(){
var form  = document.getElementById('add-info');
var formData = new FormData(form);
formData.append('caller', 'Info');
$.ajax({ url: '../inc/call.php',
    enctype: 'multipart/form-data',
    processData: false,
    contentType: false,
    cache: false,
    data: formData,
    type: 'POST',
    success: function(output) {
        console.log(output);
        return output;
    }
});
}
我的职能:

$('#card_category').change(function(){
$('#card_slug').val(GetCategoryInfo() + "/" + GetNameInfo());
CheckPokemonSlug();
})
请忽略函数GetNameInfo,因为它工作得很好。 我的问题发生在更改选择项时。 它总是使用函数GetNameInfo中的未定义/文本填充输入

最糟糕的是,console.log输出的信息应该是输入表单中的正确信息

有什么建议吗? 既然我打电话给警察,这不应该奏效吗。获取信息,然后将其设置为输入。

因为这是一个AJAX调用,所以它是异步的,但是,您的选择是同步完成的。因此,该函数立即返回一个未定义的值,然后才返回异步值,但您不再侦听该值


您可以尝试从console.log所在的位置分配输入文本,此时,调用已返回。

Ajax执行异步HTTP请求。那么我如何完成此任务呢?您必须理解概念,阅读并阅读,然后才能完成。如果console日志在这一点上起作用,返回输出也不应该工作?!你的返回在那一点上是不相关的,你的函数已经从你调用它来设置你的输入文本时返回,也请不要对我的答案投反对票,我试图帮助你,我是对的,你只是不明白我没有投你反对票。那可能是另一个用户。那么,重点是什么?有没有办法检查函数是否有值?比如等到ajax调用完成?我完全迷路了,在我学习的过程中,我真的不知道在哪里以及如何搜索。所以答案是:事件应该看起来像$'card\u category'。changeGetCategoryInfo;回调应该像success那样设置值:functionoutput{$'card_slug'.valoutput+/+GetNameInfo;CheckPokemonSlug;}很高兴我能帮助兄弟,快乐编码。