Ajax提交的表单,没有触发回调

时间:2014-09-17 10:46:20

标签: jquery ruby-on-rails ajax

我在bootstrap模式中有一个表单,我用Ajax提交。到目前为止,一切都很好,表单已提交,数据保存在数据库中。但是,在此之后,不会触发任何回调函数,也不会触发完成,成功和错误。我真的很难看出它来自哪里。

控制器:

def create
@param = EventParam.new(event_param_params)

respond_to do |format|
  if @param.save
    format.json { render json: @param }
  else
    format.html { render :new }
    format.json { render json: @mail_template.errors, status: :unprocessable_entity }
  end
end

JS:

$(".event-param-form").submit(function(e){
          e.preventDefault();
          var valuesToSubmit = $(this).serialize();
          $.ajax({
                  type: "POST",           
                  url: $(this).attr('action'),
                  data: valuesToSubmit,
                  dataType: "JSON",
          });
    }); 

    $('.event-param-form').bind('ajax:complete', function() {
           console.log("test");
           $("#myModal").modal('hide');
    });

请注意,我还尝试使用$ .ajax()中的回调成功/完成而没有结果。

1 个答案:

答案 0 :(得分:1)

您可以在ajax本身使用success方法

 $(".event-param-form").submit(function(e){
          e.preventDefault();
          var valuesToSubmit = $(this).serialize();
          $.ajax({
                  type: "POST",           
                  url: $(this).attr('action'),
                  data: valuesToSubmit,
                  dataType: "JSON",
                  success : function(data){
                     //Success Call back
                    console.log(data);
                    alert('success');
                    $("#myModal").modal('hide');
                  },
                  error  :function(jqXHR, textStatus, errorThrown) {
                    // Error Callback
                  }
          });
    });