jQuery Ajax返回undefined

$('.updateDescriptionProduct').click( function() { if ( updateProductDescription(productID, description) == 'true') { alert('success!'); } else { alert('did not update'); } }); function updateProductDescription(productID, description) { $.ajax({ url: '/index.php/updateProductDescription', global: false, type: 'POST', data: ({productID: productID, description: description}), dataType: 'html', async:false, success: function(msg){ alert(msg); return msg; } }); } 

函数本身表示正确,但我的click事件以undefined返回。

return适用于回调。 尝试在初始函数中设置变量并在回调中设置值,然后返回它?

 function updateProductDescription(productID, description) { var ret = false; $.ajax({ url: '/index.php/updateProductDescription', global: false, type: 'POST', data: ({productID: productID, description: description}), dataType: 'html', async:false, success: function(msg){ ret = msg; } }); return ret; } 

我没有做过async调用,但似乎这应该有效。 如果没有,请告诉我。