未捕获的 ReferenceError:未定义 myFunction

新手上路,请多包涵

报错。我将代码放在 </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>

原文由 user379888 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 250
2 个回答

您不能将 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>
...

原文由 ATOzTOA 发布,翻译遵循 CC BY-SA 3.0 许可协议

直接将 myFunction 保留在脚本标签中

 i.e
   <script>

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

原文由 PSR 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题