[SOLUCIONADO]Ejecución de controles en JS seleccionables

Hola a todos, se me presenta el siguiente inconveniente:
Tengo definidos en una pantalla:

  • 1 formulario, que actúa como filtro y tiene definidos dos eventos (filtrar y limpiar),
  • 1 formulario, que consta de un único ef donde se muestra el saldo de una cuenta en formato solo_lectura, y
  • 1 formulario multilínea, donde se ingresan una serie de conceptos e importes, la columna de importes está totalizada.
    A nivel CI definí dos eventos: procesar y cancelar.

Extendí el ml y le agregué una serie de controles, como para por ejemplo verificar que el total del importe ingresado en el ml coincida con el importe que se detalla en el segundo formulario, a ese control lo agregué en el evt__validar_datos, el tema es que cuando hago click en los eventos del primer formulario (filtrar y limpiar) no quiero que se efectúe esa validación. ¿Hay forma de evitar esto?

Espero algún comentario al respecto.

Saludos y gracias!

Hola Alejandro,

esto te sucede porque el ML tiene un evento de modificacion implicito, por tanto todo pedido de pagina al servidor disparar una modificacion y por ende validacion de datos.

Lo que podrias hacer es, colocar ese control en una funcion aparte que se llame desde el evt__procesar, de manera que solo se ejecute cuando estas confirmando los datos y no cuando filtras.

Saludos

Hola Richard, hice lo que me aconsejabas y quedó funcionando correctamente.
Definí el evt__procesar en el CI que maneja la operación e invoco a la validación solo en el caso de confirmar los datos.
Les dejo el código de como lo hice por si les sirve a alguien.

function extender_objeto_js()
	{
		echo "
		//---- Eventos ---------------------------------------------
		
		{$this->objeto_js}.evt__procesar = function()
		{
			var mensaje;
            mensaje = this.dependencia('formulario_ml').evt__validar_importes();
            alert(mensaje);
            if (mensaje == false) {
            	return false;
            } else {
            	return true;
            }
		}
		";
	}

Y luego en la extensión del formulario ml definí el {$this->objeto_js}.evt__validar_importes = function(es_inicial, fila) con los controles que necesita.

Muchas gracias!.
Alejandro.