Rails:使用JQuery显示调用另一个页面的表单提交按钮的结果?

时间:2011-05-06 18:24:15

标签: jquery ruby-on-rails

我的第一个Rails应用程序正常运行!我有一个文本字段供用户输入一个句子,然后从那句话中我使用:

form_tag(another_page, :method => "get")

将文本字段值发送到另一个页面,该页面调用我创建的类并使用句子结构。

现在,我想更进一步!我希望能够使用JQuery(可能是.load命令?)在同一页面上显示结果,而无需加载完全独立的页面。 (我最终会这样做,所以每个新句子被推下一个(使用.prepend),新句子出现在顶部。)

我的两个问题是:这是否是一种可接受的方式(使用JQuery加载另一个页面的内容)?而且,最重要的是,如何修改我的代码来执行此操作?

我熟悉一些JQuery,但我不知道如何将Rails中的表单提交更改为不加载新页面(而是在JQuery.load调用中获取该新页面)。

谢谢, 德里克。

1 个答案:

答案 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/

这有帮助吗?