Javascript 调用用户定义的jQuery函数

Javascript 调用用户定义的jQuery函数,javascript,php,jquery,html,ajax,Javascript,Php,Jquery,Html,Ajax,我是一名javascript新手,我尝试以这种方式调用jQuery函数: function getProducts(){ $.post("products.php", { customer_ID:$("#customers").val() }, function(data,status){ return status && data !== ""; }); }; $(document).

我是一名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语句不工作。我想问题在于函数调用。我怎么了?谢谢。

由于函数内部的异步调用,我不太确定这是否有效

明显的错误是必须调用这样的函数:
function()
。你只是忘记了括号


如果修复后无法工作,您必须重新编写程序,在有异步调用的情况下使用回调。

您需要用回调来包装响应,如下所示:

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);
           }
        });

    });
});

埃尔克兰斯指出,在这里,多次回答@Hless仍然不起作用,因为它使用异步requestsYeah。我想我应该指出明显的语法错误。@elclanrs是的,这就是重点!非常感谢。还有一个小问题:javascript函数是否必须以;在}括号之后?我认为这些javascript的语法有点混乱,但是是的,这是解决方案:)它到底有什么混乱之处?我忘了几个空格,但几秒钟之内就把它砸在一起了。回调传递的方式并不混乱,而是javascript的工作方式。不,很清楚,没关系!我没有与您或您的解决方案“争论”,但是关于javascript语法(javascript操作方式)是的,我想如果您是javascript初学者(或者是函数式编程新手),这会有点奇怪。但过一会儿你就会习惯的。