You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

onkeyup触发Uncaught ReferenceError: showResults未定义 移除AJAX后正常

Uncaught ReferenceError: showResults is not defined at HTMLInputElement.onkeyup

问题根因

该报错并非函数本身没有定义,而是你的JavaScript代码存在语法错误,导致整个代码块解析失败,showResults函数没有被成功注册到全局作用域。
具体错误点位于AJAX配置对象中:url: "/search"; 这里属性结尾错误使用了分号;,JavaScript对象的多个属性之间必须使用逗号,分隔,这个语法错误直接阻断了后续所有代码的解析执行。你移除AJAX代码后语法错误消失,函数就能正常定义,所以功能恢复。

修复方法

将url配置行结尾的分号替换为逗号即可,修正后的完整JS代码如下:

let search = $("#livesearch")

function showResults(str) {
  if (str.length === 0) {
    search.addClass("hide");
  } else {
    search.removeClass("hide");
  }

  $.ajax({
    url: "/search",
    contentType: "application/json",
    method: "POST",
    data: JSON.stringify({
      query: str
    }),
    success: function(result) {
      search.html(result.response);
    }
  })
}

排查技巧

后续遇到类似已定义的函数报未定义的问题,可优先检查控制台是否存在语法错误(SyntaxError),语法错误会导致整个关联代码块完全失效,优先解决语法问题再排查逻辑问题。


内容的提问来源于stack exchange,提问作者Muhammad Asad

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 21:15:03