如何使用Turbolinks使method="get"的表单提交

9

我在网页上有一个搜索表单,由于使用了 method="get",因此启用 Turbolinks 是安全的。

有没有简单的方法让表单受 Turbolinks 控制提交(即避免页面刷新)?

2个回答

25
您可以在您的application.js文件中使用类似以下代码:
// send get forms through turbolinks
$(document).on("submit", "form[data-turboform]", function(e) {
    Turbolinks.visit(this.action+(this.action.indexOf('?') == -1 ? '?' : '&')+$(this).serialize());
    return false;
});

然后,要使任何形式与turbolinks一起发送,您需要向表单添加data-turboform属性,就像这样:

```html
```
<form action="..." method="get" data-turboform>
    ...
</form>

8
将其与 "form[method=get]" 一起使用可以使其更简单 :) - grosser

1
在 turbolinks 项目中,有一个 问题 #64,其中有人为 Rails 编写了 Coffeescript 实现。
将提供的代码添加到该链接中。 它添加了一个名为 turboforms 的函数,需要在页面准备就绪时调用,如下所示:
$(turboforms);

我正在实施这个过程,如果我发现其他有用的信息,我会更新我的答案。


好吧,看起来是个死胡同 :( - Jak Charlton

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接