【发布时间】:2013-11-21 02:03:38
【问题描述】:
我知道这个问题被问了很多,但没有一个解决方案有帮助。我有一个选择菜单,第一次运行没问题,但在页面重新加载之前不会再次执行。
<div class="dynamic">
<%= render 'status_selector' %>
</div>
这是部分内部的内容:
<%= form_for @report, :remote => true, :html => {:id => 'report-edit-status'} do |f| %>
<%= f.hidden_field :report_id, :value => @report.id %>
<%= f.select(:status, STATUS, {},:class => "status-change-selector", :style => "font-size:1.1em;") %>
<% end %>
这是 Application.js:
$('.status-change-selector').unbind('change');
$('.status-change-selector').change(function(event) {
event.preventDefault();
$(this).closest('form').submit();
});
更新.js.erb
$('.dynamic').html("<%= escape_javascript(render(:partial => 'reports/status_selector')).html_safe %>");
编辑:
根据 Peter Goldstein 的建议,我向 Parent 元素添加了一个侦听器,因此我不需要将 Jquery 代码添加到我的 Update.js.erb 中。这就是我现在的 Application.js 中的内容:
$('.dynamic').on('change', '.status-change-selector', function(event) {
event.preventDefault();
$(this).closest('form').submit();
});
【问题讨论】:
标签: jquery ruby-on-rails ajax