我的第一个Rails应用程序正常运行!我有一个文本字段供用户输入一个句子,然后从那句话中我使用:
form_tag(another_page, :method => "get")
将文本字段值发送到另一个页面,该页面调用我创建的类并使用句子结构。
现在,我想更进一步!我希望能够使用JQuery(可能是.load命令?)在同一页面上显示结果,而无需加载完全独立的页面。 (我最终会这样做,所以每个新句子被推下一个(使用.prepend),新句子出现在顶部。)
我的两个问题是:这是否是一种可接受的方式(使用JQuery加载另一个页面的内容)?而且,最重要的是,如何修改我的代码来执行此操作?
我熟悉一些JQuery,但我不知道如何将Rails中的表单提交更改为不加载新页面(而是在JQuery.load调用中获取该新页面)。
谢谢, 德里克。
答案 0 :(得分:0)
Derek,欢迎来到Rails!
首先,使用jQuery是一个好主意。
有几种方法可以做到这一点。你可以直接写jQuery并在外部javascript文件调用(或类似的东西):
$('#form_id').submit(function(e) {
e.preventDefault();
$.ajax({
dataType: 'json',
url: $this.attr('action'),
type: $this.attr('method').toUpperCase(),
data: $this.serialize(),
success: function(data) { /* Do Stuff */ }
})
});
或者rails有一些助手会为你做一些这样的事情,所以你要做的就是说form_tag(another_page, :method => "get", :remote => true)
。为此,您还需要在页面上添加rails.js
文件(这里有一篇很好的文章:http://www.alfajango.com/blog/rails-3-remote-links-and-forms/)
这有帮助吗?