所以我一直在谷歌搜索如何设置它们,我最终得到了这个代码.
<script>
$('#reportform')
.bind("ajax:success", function(data, status, xhr) {
$('#reportalert').text('Done.');
});
.bind("ajax:error", function(xhr, status, error) {
$('#reportalert').text('Failed.');
});
</script>
<h2>Review Driver</h2>
<p>Fill out your review of the driver</p>
<div class="hero-unit form-signin" id="reportformdiv">
<%= form_for(@report, html: { id: "reportform" }, remote: true, update:
{ success: "response", failure: "error"} ) do |t| %>
<p id="reportalert"></p>
<%= t.text_field :plant_site, placeholder: "Plant Site" %>
<%= t.text_field :route_number, placeholder: "Route Number" %>
<%= t.text_field :driver_name, placeholder: "Driver name if available" %>
<%= t.date_select :date_recorded, html: { …Run Code Online (Sandbox Code Playgroud) 我使用Rails 4,Turbolinks和一个远程表单有一个相当奇怪的问题.我的表格看起来像:
<%= form_for [object], remote: true do |f| %>
<td><%= f.text_field :name, class: 'form-control' %></td>
<td><%= f.email_field :email, class: 'form-control' %></td>
<td><%= f.submit button_name, class: 'btn btn-sm btn-primary' %></td>
<% end %>
Run Code Online (Sandbox Code Playgroud)
此表单添加(创建)一个新对象.但它确实不起作用:
当为此链接禁用Turbolink时,页面工作正常.
我有两个问题:
提前致谢.
解
感谢@ rich-peck,解决方案是添加一个javascript,点击按钮后手动提交表单:
<%= javascript_tag do %>
var id = "#<%= dom_id(f.object) %>";
var inputs = $(id).parent().find('input');
console.log(inputs);
$(id).parent().find('button').on('click', function(e) {
e.preventDefault();
$(id).append(inputs.clone());
$(id).submit();
});
<% end %>
Run Code Online (Sandbox Code Playgroud)
此代码将javascript添加到表单行,获取输入,将它们附加到ID并提交表单.preventDefault(); 防止在刷新页面并且表单实际工作时两次发送查询.