2012-02-27 36 views
2

我有一个JQuery UI自动完成字段,可以在后台访问Ruby功能。输入框不会触发到服务器的加载选项的呼叫。然而,按下向下键可以做到这一点,并在此后正常工作。任何想法,为什么这可能是?JQuery UI自动完成不会触发打字

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: "https://stackoverflow.com/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"。当我在调试器中手动更改该值时,会出现正确的行为。为什么会用这样的属性标记它,我该如何解决它?

+1

Firebug /其他调试工具是否显示为键入而触发的任何请求?该字段上是否有其他'keypress/keyup/keydown'处理程序可能会阻止此自动完成工作? – GregL 2012-02-27 23:19:27

+1

作为一个完整性检查,您至少要输入2个字符? – jmoerdyk 2012-02-27 23:25:58

+1

请修复您的HTML,以便它是您的后端脚本实际生成的内容。 – Madbreaks 2012-02-27 23:26:16

回答

1

检查应用了JQuery UI自动完成的输入字段的​​3210属性。确保它设置为"on"而不是"off"

-

我为社区使用有关问题的评论,对于未来的读者的利益回答这个问题。