【问题标题】:Form will not submit when "enter" button pressed按下“输入”按钮时不会提交表单
【发布时间】:2014-01-24 16:30:27
【问题描述】:

当用户选择创建新帐户时,我有一个呈现的表单。在 app/views/accounts/new.js.erb 中,我有一些呈现表单的 JS。

$("#freeze_container").find('table > tbody > tr:first').after("<%= j(render(partial: "accounts/form", locals: { account: @new_account }))%>")  

这就是那个部分的样子:

<tr class='new-account'>
  <%= form_for(account, :remote => true, class: "account-form") do |f| %>
    <td>
      <span class="category">
        <%= f.select :category, Account::CATEGORIES %>
      </span>
    </td>
    <td>
      <span class="institution">
        <%= f.text_field :institution %>
      </span>
    </td>
    <td>
      <span class="name">
        <%= f.text_field :name %>
      </span>
    </td>
  <% end %>
</tr>

这会正确呈现,但是,当我在表单字段中输入值并按 enter 时,什么也没有发生。当我查看日志时,似乎我没有采取任何行动。我做错了什么?

【问题讨论】:

  • 请发布您的accounts_controller.rb

标签: ruby-on-rails forms


【解决方案1】:

为了使回车键起作用,您需要有一个inputtype=submit

您可以在代码中添加一个简单的submit 按钮,并使用 CSS 将其隐藏,或者,一个更好的选择,更简洁且适用于所有浏览器,您可以使用 JavaScript 并在表单上侦听输入键被压。请参阅this SO accepted answer,例如 jQuery,它可以做到这一点。

【讨论】: