如何将jquery post结果传递给另一个函数

时间:2015-02-11 00:36:55

标签: javascript php jquery

我正在尝试使用jQuery validate插件来检查可用的名称。 它会向php文件发送请求并获得0或1的响应。

问题是我无法将结果传递给main函数。 请看下面的代码

jQuery.validator.addMethod("avaible", function(value, element) {

    $.post("/validate.php", { 
        friendly_url: value, 
        element:element.id 
    }, function(result) {  
        console.log(result)
    });

    //How to pass result here???
    console.log(result)  
}, "");

2 个答案:

答案 0 :(得分:0)

正如人们已经说过的那样,它是异步的,它是myOtherFuntion: - )

我只是将这些评论结合到某种答案中:

function myOtherFunction(result) {
// here you wrote whatever you want to do with the response result
//even if you want to alert or console.log
  alert(result);
  console.log(result);  
}

jQuery.validator.addMethod("avaible", function(value, element) {

    $.post("/validate.php", { 
        friendly_url: value, 
        element:element.id 
    }, function(result) {  
        myOtherFunction(result);
    });

    //How to pass result here???

    //there is no way to get result here 
    //when you are here result does not exist yet
}, ""); 

答案 1 :(得分:0)

由于Javascript的异步性质,console.log(result)将无效,因为服务器尚未返回结果数据。

jQuery.validator.addMethod("avaible", function(value, element) {

$.post("/validate.php", { 
    friendly_url: value, 
    element:element.id 
}, function(result) {  
    console.log(result);
    doSomethingWithResult(result);
});

function doSomethingWithResult(result) {
    //do some stuff with the result here
}
}, "");

以上将允许您将结果传递给另一个函数,该函数允许您在从服务器返回结果后实现访问和处理结果。