Rails 3使用Jquery远程提交单选按钮表单(不使用$ .post)?

时间:2012-06-22 23:23:49

标签: javascript jquery ruby-on-rails ruby-on-rails-3

我想知道是否有办法用jQuery提交一种单选按钮。我遇到的问题是我将一个开始评级的jQuery插件应用到rails表单,而这个插件有它自己的点击回调。我想简单地告诉rails表单从这个回调中提交。

以下是rails中的表单:

<%= form_for([@contact, @contact.overall_ratings.new],
                :remote => true, 
                :format => :js) do |f| %>
    <%-# TODO set these up in a loop %>
    <%= f.radio_button :rating, 1, {:class => "star"} %>
    <%= f.radio_button :rating, 2, {:class => "star"} %>
    <%= f.radio_button :rating, 3, {:class => "star"} %>
    <%= f.radio_button :rating, 4, {:class => "star"} %>
    <%= f.radio_button :rating, 5, {:class => "star"} %>

<% end %>

以下是对插件的调用,以及回调:

$(function(){ 

    $('input.star').rating({
            callback: function(value, link){
                //get parent form
                var form = $(this).parent();
                $(form).submit();

            }
    });

});

到目前为止,我所遇到的问题是它正在重定向到.js文件。好像它不遵守表格调用:remote =&gt;是的,这并不让我感到惊讶,因为我是从插件回调中调用它的。

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

怎么样?
$('input.star').click(function(){ $(this).parent().submit(); return true; });

? 这将在设置无线电输入的值后触发表单提交,因此无论如何它都会起作用。

此外 - 您确定从application.js中正确引用了jquery_ujs吗?因为看起来,这个表单没有设置为远程。

最后,IMO不需要:format=>:js,因为格式也来自标题。