我正在使用Ruby on Rails。
我想在页面上创建一个过滤器字段,这样每当输入字段的值发生变化时,我都会通过ajax过滤下面显示的列表。 (例如用户搜索在Stackoverflow中工作)
现在,我使用包含text_field_tag和submit_tag的form_remote_tag运行它,并在按下提交按钮时过滤我的列表。我想删除提交按钮,并在每次文本输入的值发生变化时执行过滤。每当输入字段中的文本发生更改时,如何触发表单提交?
我在我的表单中尝试了
<%= text_field_tag (:filter), "" , :onchange => "alert ('This is a Javascript Alert')" %>
只是为了获得onchange事件,但不知何故甚至没有出现此警告......
答案 0 :(得分:4)
将 observe_field 帮助器与单个输入一起使用,如下面的代码:
<%= text_field_tag 'filter' %>
<%= observe_field 'filter',
:url => {:controller => 'your_controller', :action => 'filter'},
:frequency => 1.2,
:update => 'results',
:with => "'typed_filter=' + $('filter').value" %>
然后编写一个控制器,给定一个名为'typed_filter'的参数,渲染结果,它将显示在id为'results'的元素中(可能是div)。
答案 1 :(得分:3)