未捕获的ReferenceError: myFunction未定义

Uncaught ReferenceError: myFunction is not defined

本文关键字:myFunction 未定义 ReferenceError      更新时间:2023-09-26

给出一个错误。我把代码放在</body>之前。仍然出现错误

<form action="" method="get" id="searchform" >
<input name="q" type="text" id="search" size="32" maxlength="128" class="txt">
<input type="button" id="hit" value="Search" onclick="myFunction();return false" class="btn">   
</form>

JS,

<script type="text/javascript">
    var nexturl = "";
    var lastid = "";
    var param;
    $(document).ready(function () {
        function myFunction() {
            param = $('#search').val();
            alert("I am an alert box!");
            if (param != "") {
                $("#status").show();
                var u = 'https://graph.facebook.com/search/?callback=&limit=100&q=' + param;
                getResults(u);
            }
        }
        $("#more").click(function () {
            $("#status").show();
            $("#more").hide();
            pageTracker._trackPageview('/?q=/more');
            var u = nexturl;
            getResults(u);
        });
    });
</script>

不能将myFunction放在onclick之后。当看到onclick时,没有myFunction的定义。

将JavaScript放置在<head>标签中。同时,将函数移到ready()之外。

:

<script type="text/javascript">
var nexturl ="";
var lastid ="";
var param;
function myFunction() {
    param = $('#search').val();
    alert("I am an alert box!");
    if (param != "") {
        $("#status").show();
        var u = 'https://graph.facebook.com/search/?callback=&limit=100&q='+param;
        getResults(u);
        }
}
$(document).ready(function() {
  $("#more").click(function () { 
    $("#status").show();
    $("#more").hide();  
    pageTracker._trackPageview('/?q=/more');
    var u = nexturl;
    getResults(u);
  });
});
</script>
</head>
<body>
...

直接在script标签中保留myFunction

 i.e
   <script>
function myFunction() {
  .....  
}
 </script>

来自jQuery文档:

传递给.ready()的处理程序保证在DOM准备好后执行,因此这通常是附加所有其他事件处理程序和运行其他jQuery代码的最佳位置。

因此,直到onclick建立之后才创建函数。因此它找不到函数。您需要将其移出$(document).ready(function(){})

您必须将函数移动到$document.ready之外,然后您将有两个选项:首先将其移动到<head>或第二次将其移动到关闭$document.ready括号之前。对函数myFunction(){alert("inside my function");};

使用这种类型的声明