【问题标题】:JQuery UI Autocomplete not triggering on typingJQuery UI自动完成不会在键入时触发
【发布时间】:2015-02-14 18:49:06
【问题描述】:

我有一个 JQuery UI 自动完成字段,可以在后台访问 Ruby 函数。在框中键入不会触发对服务器的调用以加载选项。但是,按下向下键会这样做,之后它就可以正常工作了。任何想法为什么会这样?

HTML

<div id="subject_select_dialog" class="ui-dialog-content ui-widget-content" style="width: auto; min-height: 0px; height: 141px; " scrolltop="0" scrollleft="0">
   <input id="subject_select" name="subject" size="70" type="text" class="ui-autocomplete-input" autocomplete="off" role="textbox" aria-autocomplete="list" aria-haspopup="true">
   <button id="subject_select_clear" name="button" type="clear">Clear</button>
   ...
</div>

JavaScript

$("#subject_select").autocomplete({
  source: "/users/autocomplete", 
  minLength: 2,
  focus: function( event, ui ) {
    $( "#subject_select" ).val( ui.item.label );
    return false;
  },
  select: function(event, ui) {
    $("#subject_select").val( ui.item.label )
    $("#subject_select_results").html( ui.item.label )
    $("#subject_select_id").val( ui.item.value )
    return false;
  }
});

红宝石

def autocomplete
  render :json => UserProfile.list_by_name(params[:term]).to_json
end

编辑:

检查生成的 HTML,它将我的字段标记为 Autocomplete="off"。当我在调试器中手动更改该值时,会出现正确的行为。为什么会用这样的属性来标记它,我该如何修复它?

【问题讨论】:

  • Firebug / 其他调试工具是否显示任何因键入而被触发的请求?该字段上是否还有其他 keypress/keyup/keydown 处理程序可能会阻止此自动完成功能的工作?
  • 作为健全性检查,您至少输入了 2 个字符?
  • 请修正您的 HTML,使其成为您的后端脚本实际生成的内容。
  • @jmoerdyk 是的。 @Madbreaks 这让我更直接地解决了真正的问题!显然它具有Autocomplete="off" 属性。将其更改为 "on" 会给我正确的行为。现在我想我需要弄清楚为什么它会关闭自动完成功能。将在新信息中进行编辑。
  • 现在它可以正常工作了,即使我没有改变任何东西。 :\ 讨厌这样的虫子,因为它们会回来咬我。

标签: jquery jquery-ui autocomplete jquery-ui-autocomplete


【解决方案1】:

检查 Autocomplete 属性以获取应用 JQuery UI 自动完成的输入字段。确保将其设置为 "on" 而不是 "off"

--

为了未来的读者,我作为社区使用 cmets 来回答这个问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-01-16
    • 1970-01-01
    • 1970-01-01
    • 2018-10-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多