1

jQueryでラジオボタンのフォームを送信する方法があるかどうか疑問に思っています。私が抱えている問題は、開始評価 jQuery プラグインを 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 => true の呼び出しに従わないようですが、プラグインのコールバックから呼び出しているため、これは驚くことではありません。

助けてくれてありがとう!

4

1 に答える 1

0

どうですか

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

?これにより、ラジオ入力の値を設定した後にフォームの送信がトリガーされるため、とにかく機能します。

また、jquery_ujsがapplication.jsから適切に参照されていることを確認しますか?このフォームはリモートとして設定されていないようです。

そして最後:format=>:jsに、フォーマットはヘッダーからも取得されるため、ここではIMOは必要ありません。

于 2012-06-23T08:54:39.437 に答える