Javascript返回不起作用?返回undefined

0 javascript jquery json function

我用javascript脚本遇到了一个奇怪的问题.

这是我的代码:

function checkDiscountCode()
{

  var discountCode = $('#korcode').val();
  var errorMessage = $('#errorMessage').text();

  if(discountCode.length > 2)
  {

     $.getJSON( 'calc.php?code=' + discountCode, function( json ) 
     {    
       var color = json.color; 
       var soort = json.soort;
       var waarde = json.waarde; 
       var message = json.message;

       if(errorMessage != message)
       {
          $('#error').html('<font color="' + color + '" id="errorMessage">' + message + '</font>');
       }

       if(message == 'OK!')
       {
          var outputData = soort + '-' + waarde;
          console.log('outputData = ' + outputData);
          return outputData;
       }

     });   
  }   
}
Run Code Online (Sandbox Code Playgroud)

控制台日志提供正确的数据,例如0-12.00,但是当我在另一个函数中请求此函数时,例如只是一个警报(checkDiscountCode()); 它说未定义..

谁能帮帮我吗?我没有看到这个问题..

提前致谢!

nnn*_*nnn 8

您的checkDiscountCode()函数没有return语句,因此undefined默认返回.

return你所包含的语句是作为回调函数传递的匿名函数内部$.getJSON(),因此它从函数返回到调用它的jQuery代码,而不是返回到你的代码(如果message不是则返回undefined 'OK!').($.getJSON()除非discountCode.length > 2您的checkDiscountCode()函数不尝试以任何方式返回值,否则您的运行不会运行.)