2011-09-19 33 views
2

我正在使用Rails 3.1,我需要一个复选框来切换并保存到数据库,而无需刷新或重定向页面。AJAX rails复选框使用javascript .submit()

让我先说我是相当新手,如果我从错误的角度来解决这个问题,请告诉我。

这里是我的形式:

<% form_for book, :remote => true do |f| %> 
    <%= f.check_box :finished %> 
<% end %> 

这里是我的jQuery的javascript:

$('input#book_finished').live("click", function() { 
    $(this).parent('form').submit(); 
}); 

的:远程=>则不会,当我通过jQuery提交工作,但如果我不扔在一个提交按钮(我不能)。我怎样才能提交通过JS点击复选框?

+0

您的JS应该提交表单就好了。当然,在这种情况下,你必须自己处理响应。究竟发生了什么? – polarblau

+0

它提交,然后重定向到显示页面(我正在使用标准的安静脚手架)。我试图改变控制器,所以没有重定向,我得到一个缺少模板错误。 –

回答

3

到目前为止,您的代码只能通过单击复选框来处理提交。为了通过AJAX提交表单,您仍然必须抓住提交事件,防止默认行为并发送表单数据:

$('#form-id').submit(function(){ 
    $.ajax({ 
    type: this.method, 
    url: this.action, 
    data: $(this).serialize(), 
    success: function(){ 
     ... // do something in case everything went find 
    } 
    }); 
    return false; 
});