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

jQuery Easy Autocomplete回车键跳转问题:onChooseEvent用法求助

解决jQuery Easy Autocomplete回车键跳转链接(onChooseEvent)问题

看起来你已经找对了方向——onChooseEvent正是实现「选中选项(含回车触发)跳转链接」的核心钩子,只是可能在配置细节上出了问题。我帮你修正并解释代码:

完整可运行代码示例

$(function() {
  var options = {
    data: [
      {"text": "Amazon", "website-link": "https://www.babelway.com/technology/amazon-mws/"},
      {"text": "AS2", "website-link": "https://example.com/as2-demo"} // 补全示例链接
    ],
    // 核心:选中选项时触发(点击/回车选中都生效)
    onChooseEvent: function() {
      // 获取当前选中项的完整数据
      var selectedItem = $("#search-input").getSelectedItemData();
      // 注意:带连字符的属性必须用方括号访问,不能用.语法
      var targetUrl = selectedItem["website-link"];
      
      if (targetUrl) {
        window.location.href = targetUrl;
      }
    },
    // 可选:处理表单内回车的默认提交行为
    list: {
      onKeyEnterEvent: function() {
        // 复用onChoose的逻辑,避免重复代码
        var selectedItem = $("#search-input").getSelectedItemData();
        var targetUrl = selectedItem["website-link"];
        
        if (targetUrl) {
          window.location.href = targetUrl;
          return false; // 阻止表单默认提交行为
        }
      }
    }
  };

  // 初始化组件,替换成你实际的输入框ID
  $("#search-input").easyAutocomplete(options);
});

关键细节说明

  • onChooseEvent的正确用法:这个事件会覆盖两种触发场景——用户鼠标点击选项,或者用键盘上下箭头选中后按回车,完全符合你的需求。通过getSelectedItemData()可以直接拿到选中项的完整数据对象。
  • 带连字符的属性访问:你的数据键是website-link,不能用.语法(item.website-link会被解析成减法运算,直接报错),必须用方括号item["website-link"]来访问。
  • 表单内回车的特殊处理:如果你的输入框放在<form>标签里,回车键默认会触发表单提交,这时候需要在list.onKeyEnterEvent里返回false,阻止默认行为,确保跳转优先执行。
  • 输入框ID匹配:记得把代码里的#search-input替换成你页面中实际的输入框ID。

额外提示

如果你的Easy Autocomplete版本比较旧,建议升级到最新稳定版,确保onChooseEvent和getSelectedItemData()方法能正常工作。

内容的提问来源于stack exchange,提问作者Alice J

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 02:23:46