我是一个javascript新手,我试图以这种方式调用jQuery函数:
function getProducts(){
$.post("products.php",
{
customer_ID:$("#customers").val()
},
function(data,status){
return status && data !== "";
});
};
$(document).ready(function(){
$("#customers").change(function(){
if(getProducts){
alert("trovato");
$("#products").prop("disabled", false);
$("#products").html(data);
}else{
alert("non trovato");
$("#products").empty();
$("#products").prop("disabled", true);
}
});
});
虽然函数getProducts正常工作,但ready中的if-else语句不起作用。我想,问题出在函数调用中。这有什么不对吗?谢谢。
答案 0 :(得分:0)
您需要使用回调包装响应,如下所示:
function getProducts(callback){
$.post("products.php",
{
customer_ID:$("#customers").val()
},
function(data,status){
callback(status && data !== "");
});
};
$(document).ready(function(){
$("#customers").change(function(){
getProducts(function(status) {
if(status){
alert("trovato");
$("#products").prop("disabled", false);
$("#products").html(data);
}else{
alert("non trovato");
$("#products").empty();
$("#products").prop("disabled", true);
}
});
});
});
答案 1 :(得分:-1)
由于函数内部的异步调用,我不太确定这是否可行。
显而易见的错误是你必须调用这样的函数:function()
。你忘记了括号。
如果在修复之后它不起作用,则必须重新编写程序以使用具有异步调用的回调。