Javascript 我定义函数的错误在哪里?

Javascript 我定义函数的错误在哪里?,javascript,php,html,wordpress,Javascript,Php,Html,Wordpress,我想使用php和java进行即时搜索,但我一直遇到以下错误: 未捕获引用错误:未定义searchq 在HTMLInputElement.onkeydown上 因此,我希望每次按下键都能激活一个函数,该函数将在数据库中搜索结果并将结果显示为div。我检查了所有内容以确保一切正常。将.js文件链接到我的php页面和元素。检查了我的代码拼写错误,但我找不到错误所在。以下是我的代码: jQuery(文档).ready(函数($){ 函数searchq(){ var searchTxt=$(“输入[na

我想使用php和java进行即时搜索,但我一直遇到以下错误:

未捕获引用错误:未定义searchq
在HTMLInputElement.onkeydown上

因此,我希望每次按下键都能激活一个函数,该函数将在数据库中搜索结果并将结果显示为div。我检查了所有内容以确保一切正常。将.js文件链接到我的php页面和元素。检查了我的代码拼写错误,但我找不到错误所在。以下是我的代码:

jQuery(文档).ready(函数($){
函数searchq(){
var searchTxt=$(“输入[name='food-search']”)val();
$.post(“Food Groups BG.php”,{Food_data_BG:searchTxt},函数(输出){
$(“#食品产量”).html(产量);
});
}
});

通过在另一个函数(传递给ready())中声明函数searchq,您只能使searchq在该函数中可用,而不是全局可用。我将使用jQuery绑定事件,而不是在HTML标记中使用onkeydown属性

jQuery(document).ready(function ($) {
    function searchq(event) {
        var searchTxt = $("input[name='food-search']").val();
        $.post("Food-Groups-BG.php", {food_data_bg: searchTxt}, function(output){
            $("#food-output").html(output); 
        });
    }
    $("#food-search-id").on("keydown", searchq);
});
要了解有关事件处理的更多信息,您可以查看jQuery文档,例如和。

通过在另一个函数(传递给ready())中声明函数searchq,您只能使searchq在该函数中可用,而不是全局可用。我将使用jQuery绑定事件,而不是在HTML标记中使用onkeydown属性

jQuery(document).ready(function ($) {
    function searchq(event) {
        var searchTxt = $("input[name='food-search']").val();
        $.post("Food-Groups-BG.php", {food_data_bg: searchTxt}, function(output){
            $("#food-output").html(output); 
        });
    }
    $("#food-search-id").on("keydown", searchq);
});

要了解有关事件处理的更多信息,您可以查看jQuery文档,例如和。

Ali Yousuf是对的
searchq()
仅在
jQuery(document).ready(function($){….})
handler函数的本地范围内可见,不能从外部任何地方访问。因此,您必须像Ali Yousuf所说的那样删除jquery就绪处理程序,或者像下面这样定义函数
window.searchq=function(){…}
,以使其全局可访问

Ali Yousuf是正确的
searchq()
仅在
jQuery(document).ready(function($){….})
handler函数的本地范围内可见,不能从外部任何地方访问。因此,您必须像Ali Yousuf所说的那样删除jquery就绪处理程序,或者像这样定义您的函数
window.searchq=function(){…}
,以使其全局可访问

尝试删除
jquery(document).ready(function($){
哦,您无法删除它,因为您在
jquery(document)之前在内部使用jquery
$
).ready
,创建一个变量
var searchq;
,然后在
ready()内
,将函数分配给
searchq
。您可以删除它,只要代码在页面准备就绪之前没有运行。鉴于此代码位于输入的onkeydown事件中,那么它就不必位于doc ready函数中。但是,正确的解决方案是@ToJa92 posted-利用jQuery的事件处理进行much cleaner解决方案。尝试删除
jQuery(document).ready(函数($){
哦,您无法删除它,因为您在内部使用jQuery
$
。在
jQuery(document).ready
之前,创建一个变量
var searchq;
,然后在
ready()内部
,将函数分配给
searchq
。您可以删除它,只要代码在页面准备就绪之前没有运行。鉴于此代码位于输入的onkeydown事件中,那么它就不必位于doc ready函数中。但是,正确的解决方案是@ToJa92 posted-利用jQuery的事件处理进行much清洁剂解决方案。哇,太快了,非常感谢你,伙计,现在它工作了,谢谢哇,太快了,非常感谢你,伙计,现在它工作了,谢谢