Rails提交按钮不起作用(name =" commit")

时间:2017-10-20 02:04:50

标签: ruby-on-rails angularjs

我有一个仅使用AngularJS的Rails 5应用程序,没有jQuery / Turbolinks。表单助手生成的典型提交按钮在此应用程序中不起作用(立即进入禁用状态)而不提交表单,我已经使用了type_&#34的button_tags;提交"代替。

如果我删除" name =' commit'"来自提交按钮的属性,它通过提交表单按预期工作。我想知道是否有一些与我没有看到的属性相关的东西。以下是一个示例表单。

<%= form_for(role) do |f| %>

  <div class="field">
    <%= f.label :name %>
    <%= f.text_field :name %>
  </div>

  <div class="actions">
    <%= f.submit %>         <!-- this fails -->
    <input type="submit" /> <!-- this works -->
  </div>
<% end %>

点击之前,按钮html如下所示:

<input type="submit" name="commit" value="Update Role" data-disable-with="Update Role">

点击后,按钮如下所示:

<input type="submit" name="commit" value="Update Role" data-disable-with="Update Role" disabled="disabled" class="disabled">

好像Chrome认为该表单已提交,但有些事情阻止了这种情况发生。

2 个答案:

答案 0 :(得分:0)

文档:Link

  <div class="actions">
    <%= f.submit "Commit", name: "commit" %> 
    #or
    <input type="submit" name="Commit" /> 
  </div>

答案 1 :(得分:0)

documentation所示,这非常好。

<%= form_for @post do |f| %>
  <%= f.submit %>
<% end %>

Rails form_for会将f.submit转换为相应的提交按钮,类型为提交。尝试重新启动服务器一次,然后检查问题是否仍然存在。

另外一点是,rails表单中任何类型为submit的按钮都将被视为表单提交按钮。