我从rails 2.3.8升级到3.0.0,所以我需要用form_for(@object,:remote => true)替换remote_form_for帮助程序调用。
我一直跟着Simone Carletti,但我似乎不能从rails.js得到ajax回调。
我生成的HTML是:
<form accept-charset="UTF-8" action="/vendor_shipments" class="new_vendor_shipment" data-remote="true" id="formname" method="post">
我正在测试的javascript:
jQuery(function($){ alert('document ready'); $("#formname") .bind('ajax:loading',function() {alert("loading!");}) .bind('ajax:success',function(data,status,xhr) {alert("success!");}) .bind('ajax:failure',function(xhr,error) {alert("failure!");}) .bind('ajax:complete',function() {alert("complete!");}); });
‘document ready’警报触发,ajax请求被成功执行(数据发布到服务器),但是没有一个’ajax:____’回调触发。
我究竟做错了什么?
(为什么值得,表单本身通过ajax加载)
解决方法
哇,这是一个巨大的浪费一个晚上。
按照我所做的方式,rails.js的默认原型将不会连接回调。
转换到基于jQuery的rails.js(http://github.com/rails/jquery-ujs)后,回调正常。