Rails远程表单不触发ajax:成功处理程序

时间:2014-03-31 10:20:00

标签: jquery ruby-on-rails ajax forms

以下是我对表单的看法:

#popupBox
  %h1 Change Password
  %p Update password for user: #{@user.email}.
  #formHolder
    = simple_form_for @user, url: update_password_user_path, html: { class: 'remote-form' }, remote: true do |f|
      = f.input :password, required: true

      = f.button :submit, 'Update Password'

这是控制器代码:

def update_password
  @user = User.find(params[:id])
  if @user.update(update_password_params)
    render layout: false # This shows a nice "Completed" message for the user.
  else
    render action: 'edit_password', layout: false
  end
end

我的javascript代码:

$(document).ready ->
  $("form.remote-form").on("ajax:success", (e, data, status, xhr) ->
    console.log("Working")
    $("form.remote-form").append xhr.responseText
  ).on "ajax:error", (e, xhr, status, error) ->
    console.log("Not working")
    $("form.remote-form").append "<p>ERROR</p>"

当我提交表单时,会触发一个AJAX帖子(在我的开发工具中看到),但是没有触发console.log调用。

如何检测表单何时通过AJAX提交并将控制器代码的结果放在dom中的表单位置?

1 个答案:

答案 0 :(得分:0)

在控制器中添加json响应: