2012-03-30 2 views
0

私はAJAXでRailsフォームを提出しようとしています。AJAXでRailsフォームを送信するにはどうしたらいいですか?

私は誰かが好き嫌いがある場合、いくつかの色を緑と赤に設定するjQuery機能をいくつかオン/オフしています。

私はjQuery関数を呼び出して色を切り替え、ajaxを使ってフォームをlike/dislikeの状態でrails関数に送信するようにしています。

マイ形式:

#wrapper_select.like_select 
    = form_for @paintings, :url => "/paintings/handlelike", :method => "post", :remote => true, :html => {:name => 'form'} do |f| 

     = hidden_field_tag :s_id, params[:id] 
     = hidden_field_tag :likes, params[:choice] 

jQueryの機能:

$('.like_select').click(function() { 
    if (this.className.match(/like_yes|like_no/)) $(this).toggleClass('like_yes like_no'); 
    else $(this).toggleClass('like_yes'); 

    }) 

どのように私は、フォームとその値をトグルjsの関数を呼び出し(関数は、それ自体でいい作品)とAjaxを提出することができますユーザーが好き嫌いがある場合は?

答えて

1

jquey.formプラグインのajaxsubmit関数を使用して、別の関数を呼び出すことができます。 ここにjquery.formプラグインへのリンクがあります。

http://jquery.malsup.com/form/

_ __ _ __ _ __ _ _edit 2_ _ __ _ __ _ __ _ __

= javascript_include_tag "jquery.form", "jquery.validate", "attachment_validation" 
= form_for @paintings, :url => "/paintings/handlelike", :method => "post", :remote => true, :html => {:id => "submit_form_id",:onsubmit => "return false;", :name => 'form'} do |f| 


    = submit_tag "submit", :class => "ClickClose", :id => "submit_form_btn" 
jQueryのAjaxでフォームを送信軒の

あなたのjsが

$("#submit_form_btn").click(function() { 
    //call your second function before submitting 

      $('#submit_form_id').submit(function() { 
      $(this).unbind('submit').ajaxSubmit({ 
       success: function(data) { 
       //do something on success case. 
       } 
      }) 
      return false 
      }); 
    }); 
+0

Thxを、そのプラグインについて知っていなかったと思うこのネイティブを行うには方法の良い例ではありませんか? – Rubytastic

+0

uはjquery.submit関数でフォームを送信することもできますが、リクエストはajaxリクエストではありません。このプラグインを使用している間、あなたは簡単にajaxリクエストを通して添付ファイルを投稿/アップロードできます。 –

+0

これはまだうまくいかない解決策です。ブラウザでJSをどこで無効にすればいいですか?私は実際に私の目的のためにこのプラグインを実際に使用する方法について実際にはもっと大きな画像を見ることができません。あなたは何を意味するのですか? – Rubytastic

関連する問題