问候,
我已经花了大约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/