【问题标题】:jquery autocomplete Cannot read property 'replace' of undefinedjquery自动完成无法读取未定义的属性“替换”
【发布时间】:2016-02-29 14:15:36
【问题描述】:
$('#tags').autocomplete({
    params: {search_type:$('#search-type').val()},
    minChars: 2,
    appendTo: $(".cash-collection-select"),
    serviceUrl: '/admin/journals/search_roles',
    onSelect: function (suggestion) {
      $("#q").val(suggestion.data);
      console.log(suggestion.data)
      alert("You selected: ' + suggestion.value + ', ' + suggestion.data")
    },
    onSearchStart: function(query) {
    console.log("query: "+query)
    },
    onSearchComplete: function (query, suggestions) {
      console.log(suggestions.data)
    }
  });

我收到错误无法读取未定义的属性“替换”。我对 rails 操作的响应是 json 格式

suggestions = User.where("email LIKE ?","#{params[:query]}%")
    message = {:query => "Unit", :suggestions => suggestions}
    render :json => message

这是我的输入#tags

<input class="search-emails" type="email" id="tags" placeholder="Search by email.." />

【问题讨论】:

  • 您可以发布任何可以现场测试此页面的链接吗?这将使调试更容易。
  • 请编辑您的帖子并包含一些您的 Rails 将返回的示例数据。我看不到在哪里使用.replace(),所以不清楚错误是在哪里产生的。是否涉及其他代码?
  • 您似乎还有许多来自 JQuery UI 的 .autocomplete() 不存在的方法和选项。这方面的文档在哪里?你在用插件吗?
  • @Twisty 我没有在任何地方使用 .replace(),它在 autocomplete.min.js 中
  • 您遇到的错误表明正在对未定义的对象调用.replace()。因此,它正在您的代码中的某处使用,或者您的代码中的某些内容正在将未定义的对象传递给其他内容。

标签: javascript jquery jquery-ui frontend jquery-autocomplete


【解决方案1】:

这个在cmets里躺了很久,想着把这个移到答案里。

我的 rails action 数据是一个模型对象数组,我将其更改为 ruby​​ 数组,现在它可以正常工作了。

【讨论】:

    猜你喜欢
    • 2020-10-04
    • 2019-08-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-01
    • 2020-03-10
    • 2015-05-29
    相关资源
    最近更新 更多