我正在 Rails 3.0.3 上开发并使用 jQuery。这是我的 javascipt 包含标签:
<%= javascript_include_tag "http://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js", "rails.js" %>
我想在更改下拉列表时发送 JS 请求并编写以下代码来执行此操作。此表单不会作为 JS 处理,而是作为 HTML 请求处理:
<% form_tag(aggregatedata_path, :method=>'post', :id => "dd-container", :remote => true ) do %>
<%= select_tag(
:group,
options_for_select(groups_list, @group),
{
:id => "dd",
:onchange => "this.form.submit();"
} ) %>
<% end %>
我在 SO 上阅读了一篇类似的帖子,该帖子表明问题出在 js 库上,但除非没有其他办法,否则我宁愿避免在这一点上改变这一点,以免一百万其他事情中断。我有另一种形式作为 JS 请求处理就好了。这里是:
<% form_tag(poweroutput_path, :method=>'post', :id => "date-form", :remote => true ) do %>
<%= text_field_tag(
'dt', nil,
{
:id => 'date-field',
:class => 'dateformat-d-dt-m-dt-Y',
:value => Time.now.getlocal.strftime("%d.%m.%Y")
}) %>
<%= submit_tag " ", :id => "go-button" %>
<% end %>
我看到的唯一明显区别是第一个使用:onchange => "this.form.submit();"
,而第二个没有。该函数中是否有某些内容覆盖了我之前的内容:remote => true
?