Evitar la validacion de datos para un evento en particular.

Hola

Tengo dos eventos del CI anterior y guardar (es un wizard) ambos manejan datos.
Como puedo hacer para me valide unicamente los datos uando hago click en guardar pero no cuando hago click en Atras.

Gracias

Hola José!!
La más facil y más obvia respuesta es que el botón anterior no maneje datos, con eso solucionas el problema de la validación de campos obligatorios, si es a lo que te referias.

Saludos

Si eso ya lo se, pero eso es justamente lo que quiero evitar. Quiero que maneje datos pero que no valide la idea es que cuando vaya a la pantalla anterior con el boton atras no pierda lo que cargue en la ventana actual (combos).

Hola Jose,

deberias redefinir la validacion de datos en js, incluyendo ademas alguna bandera que te indique si debes validar o no… dicha bandera la setearias en los eventos correspondientes a los botones ‘anterior’ y ‘guardar’. En un caso retornarias directamente true (sin validacion) y en el otro caso realizarias la validacion correspondiente y devolverias el valor adecuado.

Saludos
Richard

Hola!
Tengo el mismo problema, hay alguna solución sin usar JS?
Con JS, tienen algún ejemplo a mano?

Muchas gracias!!

Saludos,
Marcia

Hola Marcia,

la validacion de datos en el cliente, se hace mediante JS… asi que no hay manera de evitar que se haga, sin redefinir el comportamiento usando JS.

Lo que harias es definir en la extension js, un metodo validar, que en base a una variable global que usas de bandera, devuelve true inmediatamente o devuelve el resultado de la validacion, seria algo similar a esto.


var saltear_validacion = true;
{$this->objeto_js}.validar = function() {
       var ok = true;
       var validacion_particular = 'evt__validar_datos';
       if (saltear_validacion) {
              return true;
       }
       if(this._evento && this._evento.validar) {
	if (existe_funcion(this, validacion_particular)) {
		ok = this[validacion_particular]();		
	}
	for (id_ef in this._efs) {
		ok = this.validar_ef(id_ef) && ok;
	}
      } else {
	this.resetear_errores();
      }
      if (!ok) {
	this.reset_evento();
      }
      return ok;
};

Saludos