javascript - rails : How to execute function using a button without reload pages

标签 javascript jquery ruby-on-rails ruby

嗯,也许以前有人问过这个问题,但我找不到我的问题的正确答案...... 我有一个表格,其中包含使用 each/do 收费的数据,表格中的每个项目都有一个按钮,可以将该项目添加到另一个表格中,该表格应该在同一页面中看到,但在第一个表格上方。 当我单击按钮时,它会执行操作,但问题是重新加载页面。 我该怎么做才能在不重新加载页面并实时进行此更改的情况下执行此操作???

最佳答案

您必须为此使用 Ajax。由于您没有提供任何代码,我将给您伪代码来描述这个想法。

在 Controller 中创建一个 Action 来描述您的行为。这个 Action 必须响应JS。

def do_something
  do_stuff
  respond_to do |format|
    format.html { #handle HTML, i.e. full page reload }
    format.js # handle ajax request
  end
end

然后您需要创建一个 js 模板来呈现您的操作结果。您将呈现 JavaScript。因此,创建一个名为 do_something.js.erb 的模板。该模板将包含用于实现您描述的行为的 JavaScript 代码以及任何 Ruby 代码。

不要忘记为您的操作创建路线。此外,根据您希望如何实现该方法,您需要将远程选项传递给您的表单或链接。如果您使用的是链接,则还需要传入 method 选项。

例如:

= form_for @object, remote: true

或者

= link_to "Do Something", do_something_path, remote: true, method: :patch # or post, or put

关于javascript - rails : How to execute function using a button without reload pages,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23050929/

相关文章:

ruby-on-rails - 为什么Passenger 将passenger-error-*.html 文件保存在/tmp 中?

ruby-on-rails - ruby 中的继承和扩展

javascript - array.forEach 和 angular.forEach 哪个更高效?

javascript - 延迟 jquery keyup?

javascript - 将源更改为 <audio> html5 元素

javascript - 在单个页面中使用 Vue.js 和 jQuery 可以吗,但它们各自处理不同的元素 (DOM)?

jquery - Liferay ajax 请求和 JSON 响应

ruby-on-rails - 如何在不需要参数的情况下创建自己的 Rails 生成器?

javascript - 在 Rails 中使用 jQuery 添加部分渲染效果

javascript - 检查对象数组中的所有值是否都等于 false 并在 React 中返回 true