[SOLUCIONADO] problemas con extension JS

Hola!
He extendido el comportamiento de un formulario y le he agregado un evento al mismo y cdo clickeo el boton no pasa nada de nada. Si descativo la extension funciona.
¿Qué tengo mal en la extension para q pueda funcionar el boton?
SAludos

Esta es la extension:

function extender_objeto_js()
	{
            echo "
               //---- Validacion de EFs -----------------------------------

		{$this->objeto_js}.evt__total__validar = function(inicial)
		{
                    {$this->objeto_js}.calcular_total(inicial);
		}

		{$this->objeto_js}.evt__adelanto__validar = function(inicial)
		{
                    {$this->objeto_js}.calcular_total(inicial);
		}

		{$this->objeto_js}.evt__redondeo__validar = function(inicial)
		{
                    {$this->objeto_js}.calcular_total(inicial);
		}

		{$this->objeto_js}.evt__indice_aplicado__validar = function(inicial)
		{
                    {$this->objeto_js}.calcular_total(inicial);
		}

		{$this->objeto_js}.evt__retencion__validar = function(inicial)
		{
                    {$this->objeto_js}.calcular_total(inicial);
		}
                {$this->objeto_js}.calcular_total = function(inicial){
                    this.ef('monto_actualizado').set_solo_lectura(true);
                    var subtotal = this.ef('monto_actualizado').valor();
                    var redondeo = this.ef('redondeo').valor();
                    var adelanto = this.ef('adelanto').valor();
                    var indexacion = this.ef('indice_aplicado').valor();
                    var retencion = this.ef('retencion').valor();
                    var total = subtotal + indexacion - retencion + redondeo - adelanto;
                    this.ef('total').set_estado(total);

                }
		";
	}

graciass!

Hola Natalia,

ninguno de los metodos validar esta retornando un valor… este tipo de metodos esperan una respuesta booleana… cuando no se retorna valor se asume un false (esto es que se produjo un error en la validacion), para este caso tenes 2 opciones:

  • Cambiar los metodos validar por metodos procesar (recomendada)

  • Hacer que los metodos validar retornen siempre true ya que estan para disparar el calculo del total unicamente.

La primera opcion pareciera ser la mas indicada de acuerdo al comportamiento que tenes, ya que un metodo validar que siempre dice que no hubo error es medio sospechoso.

Saludos

Cambié los métodos a procesar y ahora funciona. Luego el evento guardar está asociado a un boton y cdo lo presiono se vacian todos los efs q luego necesito ver en un pdf q salen vacio.
¿Cómo hago para q no se limpien los valores cargados en los efs?
Saludos

Los efs aparecen vacios luego de ir al servidor o antes de hacerlo?.. si es luego de ir al servidor… probablemente en el metodo conf del formulario te este faltando algo o quizas el evento no esta configurado como ‘maneja_datos’… si es antes de viajar al servidor… entonces en Javascript tenes algo que te esta reseteando el formulario. Por otro lado, ojo con el siguiente metodo:


{$this->objeto_js}.evt__total__validar = function(inicial)
		{
                    {$this->objeto_js}.calcular_total(inicial);
		}

Esto se va a disparar cada vez que se modifique el ef ‘total’ y cuando se procesa el evento guardar… cosa que vos estas haciendo dentro del metodo calcular_total… quizas te quedo un ciclo infinito?

Saludos

Hoal Richard!!!
Los efs se vacian luego de ir al servidor. Era el método conf() el problema. Ya lo he solucionado. Además eliminé el método que me señalaste en js para evitar problemas.
Gracias!!!