我想使用函数在ajax调用中获取值。但是该值始终返回未定义状态。返回值仅为1或0。
这是我的代码:
$(function(){ $('#add_product').click(function(){ var i = $('#product_name').val(); param = 'product_name='+i; var value = check_product(param); alert(value); return false; }); }); function check_product(param){ $.ajax({ type : 'POST', data : param, url : baseurl+'cart/check_product_name/', success : function(result){ //alert(result); return result; } }); }
大家好,仍在努力完成这项工作。我现在得到的值显示为1或0。我现在想要完成的是如何在if语句中实现它。我想吃点这样的东西。如果val=0,则返回true;否则,返回true。否则返回假。我不确定我是否在使用ajax函数的正确轨道上。但是,如果有更好的方法可以告诉我,我将不胜感激。
$(function(){ $('#add_product').click(function(){ var i = $('#product_name').val(); param = 'product_name='+i; check_product(param).done(function(value) { var val = value; //waits until ajax is completed }); if(val == 0){ return true; } else{ return false; } }); }); function check_product(param){ return $.ajax({ type : 'POST', data : param, url : baseurl+'cart/check_product_name/' }); }
它是异步的,因此您必须等待ajax调用来取回数据,然后才能发出警报。您可以通过返回ajax调用并使用来轻松实现done(),如下所示:
done()
$(function() { $('#add_product').click(function() { var i = $('#product_name').val(), par = 'product_name=' + i; check_product(par).done(function(value) { alert(value); //waits until ajax is completed }); return false; }); }); function check_product(param) { return $.ajax({ type : 'POST', data : param, url : baseurl + 'cart/check_product_name/' }); }