以下是text_field。
= f.text_field :title, :size => 50, :onchange => remote_function(:update => :suggestions, :url => {:action => :display_question_search_results})
以下是display_questions_search_results.rjs。
page.insert_html :bottom, 'suggestions', :partial => 'suggestions'
每当用户输入时,我都想在数据库中搜索与文本字段中的关键字匹配的任何元组。然后,显示这些结果。但是,目前,_suggestions.haml只包含“建议!!”这个词。
但是,而不是看到“建议!!”在suggestions
div标签中,我得到:
try { Element.insert("suggestions", { bottom: "suggestions!!" }); } catch (e) { alert('RJS error:\n\n' + e.toString()); alert('Element.insert(\"suggestions\", { bottom: \"suggestions!!\" });'); throw e }
我一直试图找出为什么要这样做,但我发现的先前提出的问题似乎比我正在做的更复杂......
答案 0 :(得分:2)
如果指定要更新的元素,则假定您的操作将返回html(而不是rjs / javascript),这将替换指定元素的内容。
因此,如果您需要替换:suggestions
的内容,只需在控制器中渲染部分:
render :partial => 'suggestions'
但是,如果您需要向此元素添加内容而不是替换,请从您的视图代码中删除:update => :suggestions
:
= f.text_field :title, :size => 50, :onchange => remote_function(:url => {:action => :display_question_search_results})
按原样保留控制器代码:
page.insert_html :bottom, 'suggestions', :partial => 'suggestions'