Javascript 函数调用中的语法错误
您好 我已经使用了大约1到2个小时,似乎在我创建的这个函数中找不到错误,我创建这个函数是为了通过jQuery和Ajax检查数据库中某些内容的可用性 我使用此链接调用函数用于测试目的,因为我以前无法捕获任何错误Javascript 函数调用中的语法错误,javascript,jquery,Javascript,Jquery,您好 我已经使用了大约1到2个小时,似乎在我创建的这个函数中找不到错误,我创建这个函数是为了通过jQuery和Ajax检查数据库中某些内容的可用性 我使用此链接调用函数用于测试目的,因为我以前无法捕获任何错误 <a href="#" onclick="availability_check("Despacho", "22/05/2011","12:30", "12:45")">TEST</a> 在document_ready函数下声明 有比我聪明的人能告诉我怎么了吗?Fi
<a href="#" onclick="availability_check("Despacho", "22/05/2011","12:30", "12:45")">TEST</a>
在document_ready函数下声明
有比我聪明的人能告诉我怎么了吗?Firebug只是说:
三,
语法错误
[在此错误中停止]可用性检查(您在属性的引号内使用引号,因此
可用性检查(
后的第一个引号成为onclick
属性的结束引号。将其更改为:
<a href="#" onclick="availability_check('Despacho', '22/05/2011', '12:30', '12:45')">TEST</a>
或:
将JavaScript代码和HTML代码解耦也是一种很好的做法,因此与其将其放在
onclick
属性中,不如创建data-*
属性,给元素一个id
,然后使用单独的JavaScript文件获取元素并在其上附加onclick偶数处理程序。<>您在属性的引号中使用引号,因此可用性检查(
之后的第一个引号将成为onclick
属性的结束引号。将其更改为:
<a href="#" onclick="availability_check('Despacho', '22/05/2011', '12:30', '12:45')">TEST</a>
或:
将JavaScript代码和HTML代码解耦也是一种很好的做法,因此与其将其放在
onclick
属性中,不如创建data-*
属性,给元素一个id
,然后使用单独的JavaScript文件获取元素并在其上附加onclick偶数处理程序。<>看起来您的引用导致分析失败。请尝试:
<a href="#" onclick="availability_check('Despacho', '22/05/2011','12:30', '12:45')">TEST</a>
您的引用似乎导致解析失败。请尝试:
<a href="#" onclick="availability_check('Despacho', '22/05/2011','12:30', '12:45')">TEST</a>
问题在于
onclick
属性:
onclick="availability_check("Despacho", "22/05/2011","12:30", "12:45")"
问题是Javascript摘录中的引号与分隔HTML属性的引号冲突。这就是为什么最好不要使用内联onclick
属性的原因之一
既然您使用的是jQuery,为什么不使用它的事件处理程序绑定功能呢
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;
}
$('#yourId').click(function() {
availability_check("Despacho", "22/05/2011","12:30", "12:45");
});
如果您愿意的话,还有很多其他选择器,它们都是基于CSS选择器的。要了解jQuery提供的功能,我建议使用问题在于
onclick
属性:
onclick="availability_check("Despacho", "22/05/2011","12:30", "12:45")"
问题是Javascript摘录中的引号与分隔HTML属性的引号冲突。这就是为什么最好不要使用内联onclick
属性的原因之一
既然您使用的是jQuery,为什么不使用它的事件处理程序绑定功能呢
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;
}
$('#yourId').click(function() {
availability_check("Despacho", "22/05/2011","12:30", "12:45");
});
如果您愿意的话,还有大量其他选择器,它们基于CSS选择器。要了解jQuery提供的功能,我建议您在这里使用单引号:
<a href="#" onclick="availability_check('Despacho', '22/05/2011','12:30', '12:45')">TEST</a>
在此处使用单引号:
<a href="#" onclick="availability_check('Despacho', '22/05/2011','12:30', '12:45')">TEST</a>
请注意,响应返回时会触发success。当您调用函数availability\u check时,它将执行ajax请求并在调用success之前立即返回availability(除非您的服务器速度非常快;)。您应该在success函数中使用返回的数据进行修改…请注意,响应返回时会触发success。当您调用函数availability\u check时,它将执行ajax请求并在调用success之前立即返回available(除非您的服务器速度非常快;)。您应该使用success函数中返回的数据进行修改。…您有三个问题。首先,您的onclick
属性中有引号。浏览器会认为您希望结束该属性,而不是启动JavaScript字符串。请尝试使用'
而不是“
第二个问题是,您在闭包中声明了available
。当您返回availability\u check
时,available
将超出范围。将var available
移动到上面的$。ajax
并将当前的var available=response;
更改为available=response;
第三个问题是您似乎不理解异步性。
$.ajax
将被调用,启动请求,但请求不会立即完成。在请求完成之前,它将继续返回可用;
。然后,一旦完成,它将设置可用
,但到那时它就太晚了e、 要解决此问题,请添加async:false
作为$的另一个选项。ajax
您有三个问题。首先,在onclick
属性中有引号。浏览器会认为您希望结束属性,而不是启动JavaScript字符串。请尝试使用'
而不是“
”
第二个问题是,您在闭包中声明了available
。当您返回availability\u check
时,available
将超出范围。将var available
移动到上面的$。ajax
并将当前的var available=response;
更改为available=response;
第三个问题是您似乎不理解异步性。
$.ajax
将被调用,启动请求,但请求不会立即完成。在请求完成之前,它将继续返回可用;
。然后,一旦完成,它将设置可用
,但到那时它就太晚了e、 要解决此问题,请添加async:false
作为$的另一个选项。ajax
即使您有一个非常快速的服务器,它也会等待下一个事件循环触发