Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 函数调用中的语法错误_Javascript_Jquery - Fatal编程技术网

Javascript 函数调用中的语法错误

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

您好

我已经使用了大约1到2个小时,似乎在我创建的这个函数中找不到错误,我创建这个函数是为了通过jQuery和Ajax检查数据库中某些内容的可用性

我使用此链接调用函数用于测试目的,因为我以前无法捕获任何错误

<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

即使您有一个非常快速的服务器,它也会等待下一个事件循环触发