gpt4 book ai didi

javascript - 函数调用中的语法错误

转载 作者:行者123 更新时间:2023-11-28 16:30:45 24 4
gpt4 key购买 nike

问候,

我已经处理了大约 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 字符串。尝试使用 ' 而不是 "

第二个问题是您在闭包内声明可用。当您返回 availability_check 时,available 将超出范围。将 var available 移至 $.ajax 上方,并将当前的 var available = response; 更改为 available = response; >.

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

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

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com