1

我有一个表单,我在一个页面中用作远程表单,并希望将表单重用于另一个页面,而不是远程。在一种情况下使其远程而不在另一种情况下远程的最简单方法是什么?在我不希望表单远程的情况下,表单是为特定 url 显示的唯一内容。在另一种情况下,表单被嵌入到一个更复杂的结构中,我在那里使用了远程功能。我只需要提交按钮来请求 html 响应而不是 javascript 响应。提前致谢!

4

2 回答 2

3

有两种方法:

1:使用jQuery禁用远程方法

您可以使用 jQuery 来“禁用”远程表单。这是一个两个命令过程,您需要按顺序执行:

$('form#form_id').removeAttr('data-remote');
$('form#form_id').remoteData('remote');

2:使用 Rails 部分和变量

为您的表单创建一个部分(如果尚不存在)。表单助手看起来像这样

form_for @object, remote: remote

<%= render partial: 'form', locals: { remote: true } %>然后,使用或调用部分<%= render partial: 'form', locals: { remote: false } %>

于 2013-05-07T02:42:45.603 回答
1

您将表单提取到一个部分的、以下划线开头的新文件,例如 _my_form.html.erb:

<%= form_for @resource, url: url, remote: remote do %>
  ...
<% end %>

你在你的两个文件中使用它:像这样:

使用 url1 使其远程:

<%= render partial: 'my_form', locals: { url: 'url1', remote: true } %>

使用 url2 使其非远程:

<%= render partial: 'my_form', locals: { url: 'url2', remote: false } %>

注意'my_form'将根据您将部分保存在哪个文件夹中。例如,如果您保存在shared文件夹中,您将使用'shared/my_form'

于 2013-05-07T02:34:33.350 回答