Javascript console.log有效,但输入值未定义

时间:2018-09-25 18:08:45

标签: 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',
    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输出应该以输入形式显示的正确信息是最糟糕的事情。

对此有何建议? 既然我打电话给我,这不行吗?获取信息,然后将其设置为输入。

1 个答案:

答案 0 :(得分:1)

由于这是一个AJAX调用,因此它是异步的,但是您的选择是同步完成的。因此,function立即返回一个undefined,并且仅在以后返回异步值,但是您不再侦听该值。

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