如何使用AJAX提交Rails表单,还会触发jQuery操作?

时间:2012-03-30 13:01:50

标签: jquery ruby-on-rails ajax ruby-on-rails-3 submit

我正在尝试使用AJAX提交Rails表单。

我有一些切换开/关jQuery功能,将某些颜色设置为绿色和红色,如果有人喜欢或不喜欢。

我正在尝试的是让它调用我的jQuery函数来切换颜色,然后将带有ajax的表单提交给rails函数,其状态为like / dislike。

我的表格:

#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');

  })

如何调用toggle js函数(该函数可以自行运行)并使用ajax提交表单,然后在用户喜欢/不喜欢的情况下提交值?

2 个答案:

答案 0 :(得分: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"

你的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
          });
  });

答案 1 :(得分:1)

使用Jquery ajax提交表单需要额外的东西来处理。

  1. 表单验证
  2. 收集值并使用Jquery POST提交
  3. 处理回复和显示消息
  4. 最好看到它。这是一个很好的例子我认为

    http://net.tutsplus.com/tutorials/javascript-ajax/submit-a-form-without-page-refresh-using-jquery/