javascript – 无法绑定ajax:使用form_for创建的表单成功…:remote => true

前端之家收集整理的这篇文章主要介绍了javascript – 无法绑定ajax:使用form_for创建的表单成功…:remote => true前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在使用Rails 3.1.1

我在haml视图中有以下内容

= form_for booking.notes.build,:remote => true do |f|
  = f.text_area(:content)
  = f.hidden_field(:noteable_id)
  = f.hidden_field(:noteable_type)
  = f.submit('Add note')

这会在提交时创建新笔记.此外,我的控制器的响应正在Chrome控制台(网络标签)中正确显示.但我似乎无法抓住回应.

我想在提交后更新页面上的注释列表.我一直试图绑定到ajax响应,所以我可以抓住响应,但我失败了.例如,我认为这应该有效,但不是:

$('#new_note').bind('ajax:success',function() {
  alert('Hi');
});

但是没有触发警报.我认为这解释了为什么这也行不通.

$('#new_note').bind("ajax:success",function(evt,data,status,xhr){
  // Insert response partial into page below the form.
  $(this).parent.append(xhr.responseText);

})

你能指点一下可能出现的问题吗?

解决方法@H_404_20@
你试过’ajax:complete’吗?

其他可能出错的地方:

状态代码并非真正“成功”.这触发了jQuery的成功

if ( status >= 200 && status < 300 || status === 304 ) {

或者在呈现表单之前评估事件处理程序.尝试事件委托:

$("body").on('ajax:success','#new_note',function(){...})

(小心,这是新的jQuery语法.如果使用旧的jQuery,请相应调整)

猜你在找的Ajax相关文章