【发布时间】:2012-03-29 19:05:17
【问题描述】:
在我的 Rails 3.1 应用程序中,我有一个在单击时弹出的 Jquery 对话框,其中有一个提交按钮。我在制作这个“提交”按钮 ajax 方面做了一些尝试。因此,当它被点击时,它会更新约会时间和日期。我有以下代码:
<% if @booking.id and current_user.is_booking_manager? %>
<button id="confirm_appointment">
test confirmation
</button>
<div style="display:none;">
<div id="confirm_appointment_dialog" title="Test Confirm Booking">
<%= form_for @booking, :url => booking_confirmation_path(@booking), :remote => true do |f| %>
<%= f.hidden_field :id %>
<%= f.datetime_select :confirmed_appointment %>
<br />
<b>Clear provisional appointment:</b><%= check_box_tag "make_unexpected" %>
<br />
<%= f.submit :class => 'submit_me' %>
<% end %>
</div>
</div>
<% end %>
Application.js
$('.submit_me').bind('change',
function() {
$(this).parents('form:first').submit();
});
我有什么遗漏的吗
【问题讨论】:
-
重新加载页面后它会更新吗?在这种情况下,您需要定义 create.js.erb 或 update.js.erb 并在那里更新页面。此外,据我所知,绑定代码不是必需的,因为您的表单实例化中的 :remote => true 已经使表单“ajax”
-
是的,它会在页面重新加载后更新
-
所以你说我应该创建一个 update.js.erb 并将我的 javascript 放在里面?
-
您需要告诉您的浏览器重新加载页面中包含新信息的部分。您的控制器会自动查找具有在控制器中调用的操作名称的视图,这是您需要放置 javascript 以更新页面的位置。
-
所以我需要我的控制器查看js来查看控制器并做出响应?
标签: ruby-on-rails ajax jquery ruby-on-rails-3.1