问候,

我已经花了大约1或2个小时的时间,看来我找不到通过jQuery和Ajax检查数据库中某些内容的可用性而创建的函数中的错误。

我正在通过此链接调用该函数以进行测试,因为以前我无法捕获任何错误。

<a href="#" onclick="availability_check("Despacho", "22/05/2011","12:30", "12:45")">TEST</a>


该函数的代码如下:

function availability_check(location, date, from, to){
    var check = 'location='+ location + '&date='+ date + '&from=' + from + '&to=' + to;

    $.ajax({
        type: "POST",
        url: "check-availability.php",
        data: check,
        cache: false,
        success: function(response){
                    var available = response;
                }
    });

    return available;
}


在document_ready函数下声明。

能比我聪明的人告诉我怎么了吗? Firebug只是说:

3

语法错误
[停止此错误] Availability_check(

最佳答案

那里有三个问题。首先,您在onclick属性中使用了引号。浏览器会认为您要结束属性,而不是启动JavaScript字符串。尝试使用'代替"

第二个问题是您要在闭包内部声明available。当您返回availability_check时,available将超出范围。将var available移到$.ajax上方,然后将当前var available = response;更改为available = response;

第三个问题是您似乎不了解异步性。 $.ajax将被调用,启动请求,但是请求不会立即完成。在请求完成之前,它将继续到return available;。然后,一旦完成,它将设置available,但是那时为时已晚。要解决此问题,请将async: false作为另一个选项添加到$.ajax

关于javascript - 函数调用中的语法错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6091015/

10-11 12:32