带有插值参数的rails form_for onsubmit没有达到js函数

时间:2019-05-21 02:07:26

标签: javascript ruby-on-rails

我有一个rails form_for html元素。该表单具有onsubmit属性,该属性调用javascript函数。 onsubmit可以正常工作,但是当我添加其他参数时,js函数不再受命。

由form_for生成的带有附加参数的HTML是正确的,但是由于某种原因未调用js函数。任何帮助表示赞赏!

This works...

<%= form_for :item, html: { onsubmit: "saveItem(event)" } %>
  form content...
<% end %>

function saveItem(event) {
  js function content...
}

--------------------------------------------------------------------------------

This does not...

<%= form_for :item, html: { onsubmit: "saveItem(event, #{method}, #{url})" } %>
  form content...
<% end %>

function saveItem(event, method, url) {
  js function content...
}

1 个答案:

答案 0 :(得分:1)

检查生成的html,并确保正确引用了saveItem的参数。尝试使用<%= form_for :item, html: { onsubmit: "saveItem(event, '#{j method}', '#{j url}')" } %>-用单引号引起来的字符串,然后通过j helper方法传递它们,以确保正确地转义它们以供JS代码使用。