abr 30

Error en Element.send con Mootools 1.2 beta 2

2
Escrito hace 2 años por Bezerik, archivado en Código, Mootools.

Para todos los desarolladores que esteis trabajando con las librerias de Mootools 1.2 beta 2 (incluida la versión compatible con 1.1), podeis observar que algunas funciones y métodos pierden su funcionalidad. Una de ellas es la función Element.send (de la clase Ajax.js) que me ha hecho perder algo más de una hora laboral.

En la versión estable de Mootools (actualmente v1.1), el código Javascript para el ejemplo de Ajax.Form, seria el siguiente:

<script type="text/javascript">
window.addEvent('domready', function(){
  $('myForm').addEvent('submit', function(e) {
    /**
    * Prevent the submit event
    */
    new Event(e).stop();

    /**
    * This empties the log and shows the spinning indicator
    */
    var log = $('log_res').empty().addClass('ajax-loading');

    /**
    * send takes care of encoding and returns the Ajax instance.
    * onComplete removes the spinner from the log.
    */
    this.send({
      update: log,
      onComplete: function() {
        log.removeClass('ajax-loading');
      }
    });
  });
});
</script>

Pero si probamos el código de arriba con las librerias beta veremos que no funciona y existen errores. Buscando por los Foros de Mootools di con la solució. El usuario Cost publicó el siguiente código (que funciona):

<script type="text/javascript">
window.addEvent('domready', function(){
  $('myForm').addEvent('submit', function(e) {
    /**
    * Prevent the submit event
    */
    new Event(e).stop();

    /**
    * This empties the log and shows the spinning indicator
    */
    var log = $('log_res').empty().addClass('ajax-loading');

    var sender = new Request();
    sender.onSuccess = function(responseText, responseXML){
	  log.set('html', responseText);
	  log.removeClass('ajax-loading');
	};
    sender.send({data: this, url: this.get('action')});
  });
});
</script>

Más información (en ingles): form.send() problem in 1.2beta2

2 Comentarios

  1. Muy muy util ;)

  2. Muchas gracias ;) Parece que no actualizan las demos hace bastante, ya había acotado el problema a “send” y no sabía realmente lo que estaba pasando, intentando actualizar incluso a la última versión 1.2.3

¿Y tú que dices?



Publididad