【问题标题】:Submit method don't work in rails提交方法在 Rails 中不起作用
【发布时间】:2017-01-28 16:59:13
【问题描述】:

我需要将提交按钮替换为“link_to”。

#View
<%= form_for :task, remote: true, id: 'create_form' do |f| %>
  ....
  <%= link_to 'OK', '', id: 'submit_link' %>
<% end %>


#CoffeeScript
ready = ->
  $("#submit_link").click (event) ->
    $("#create_form").submit()
$(document).ready ready
$(document).on "page:load", ready

单击触发器工作正常,但“submit()”方法不起作用,我不知道为什么。 我也尝试添加“event.preventDefault()”,但没有任何改变。

【问题讨论】:

  • 你不见了#
  • 操作。对不起,我只在这篇文章中错过了#。在我的代码中我有它。
  • 试试$("#create_form")[0].submit()
  • @trueinViso,不,也不起作用
  • 您在点击提交之前或之后是否在控制台中看到任何 javascript 错误?

标签: javascript jquery ruby-on-rails coffeescript


【解决方案1】:

我认为您需要像这样设置表单的 id

<%= form_for :task, remote: true, html: { id: 'create_form' } do |f| %>

http://apidock.com/rails/ActionView/Helpers/FormHelper/form_for

或者,只需使用 form_for 生成的表单 id,它应该是 new_task

#CoffeeScript
ready = ->
  $("#submit_link").click (event) ->
    $("#new_task").submit()
$(document).ready ready
$(document).on "page:load", ready

【讨论】:

  • 有了这个变化,$("#create_form").length 输出什么?
  • @HermanEyd 如果您真的不需要设置表单 ID,那么我会使用 form_for 生成的那个。请参阅我编辑的答案。
  • 哇,好神奇。第一次不使用&lt;%= form_for :task, remote: true, html: { id: 'create_form' } do |f| %&gt;,但现在都只能使用此更改!谢谢!太棒了!
猜你喜欢
  • 1970-01-01
  • 2011-11-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-09-18
相关资源
最近更新 更多