2012-03-30 87 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