2012-03-30 29 views
0

我想提出一個Rails的AJAX形成。如何使用AJAX提交Rails表單,同時觸發jQuery操作?

我有開/關jQuery函數一些切換,設置一些顏色綠色,紅色,如果有人喜歡或不喜歡。

我想要是有它叫我jQuery的功能切換顏色,然後使用Ajax提交表單到軌功能與提交的喜歡/不喜歡的狀態。

我的形式:

#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_8 _ __ _ __ _ __ _ __

= 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" 

您的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 2012-03-30 13:19:35

+0

你也可以通過jquery.submit函數提交表單,但請求不會是ajax請求。在使用此插件時,您可以通過ajax請求輕鬆發佈/上傳附件。 – 2012-03-30 13:22:55

+0

仍然這個woudent是一個非工作的解決方案如果我在哪裏禁用瀏覽器中的JS?實際上,我實際上並沒有看到關於如何使用這個插件來實現我的目的的大局。什麼query.submit你的意思? – Rubytastic 2012-03-31 13:13:29