[SOLUCIONADO] Agregar/Modificar/Quitar mascara en tiempo de ejecución

Buenas

Uso toba 3.0.25
Estoy tratando de hacerlo y no funciona ninguna de las dos
Uso las siguientes instrucciones en la extension JS del form:


{$this->objeto_js}.evt__cuit__v = function(es_inicial)	{

			var expreg = this.ef('mascara')
			var texto  = this.ef('cuit').get_estado();
			
			if (empty(expreg)){  // trato de eliminar la másca
				var masc = new mascara_generica(\"\");
				this.ef('cuit').set_mascara(masc); 
			}else{
                                var masc = new mascara_generica(\"/^[0-9]{2}\.[0-9]{3}\.[0-9]{3}$/\");  // trato de poner máscar
				this.ef('cuit').set_mascara(masc); 
                        }


Bueno, agradeceré cualquier tipo de ayuda!!

Hola Oscar,

si le pasas null como parametro al metodo set_mascara deberia eliminarte la mascara actual.

Por otro lado, lo que me parece raro es el nombre del metodo… eso responderia a un evento “v” del campo “cuit”, si no es asi como lo pensaste, puede que no este llegando nunca a pasar por ahi debido a ello.

Saludos

Gracias Richard!!
Si, efectivamente había algo raro !!!

Malas mias, cometí varios erroes:

El primero: quice poner una expresión regular donde iba una máscara.

Después está la llamada a la funcion…

Bueno lo modifiqué y está funcionado bien aparentemente…

Coloco o quito expresión regular para validar el formato y contenido del campo.
La máscar biene de una tabla de tipos de documento…


               /**
		* 	Refresca el estado de extranjero de un TD
		*/		
		{$this->objeto_js}.refrescar_extranjero = function(es_inicial) {
			
			if (!es_inicial) {
				parametros=this.ef('id_tipodoc').get_estado();
				
				this.controlador.ajax('get_td_extranjero', parametros, this, this.actualizar_td_e);
			}
		}

		{$this->objeto_js}.actualizar_td_e = function(resultado){
			
			if ( resultado['extranjero'] == 'NO' )
			{
				//this.ef('id_pais_doc').set_opciones(array(array('pais'=>54, 'nombre' =>'Argentina'));
				//this.ef('id_pais_doc').set_solo_lectura(true) ;
			}
			
			var expreg = resultado['mascara']  ;
			if ( expreg ){
				//this.ef('cuit').set_expreg('/^[0-9]{2}\.[0-9]{3}\.[0-9]{3}$/'); 
				this.ef('cuit').set_expreg(expreg);
			}else{
				this.ef('cuit').set_expreg(''); 
			}

Si no da errores depués de las pruebas de rigor, lo pongo como solucionado!

GRACIAS !!

Hola Oscar,

ok, lo que necesitabas entonces era mas una validacion(expreg) que un formateo del dato mostrado (mascara) .
Podrias ademas agregarle una mascara para que se muestre tal como lo esperas (aunque seria algo mas tipo (##-####-##) de acuerdo a la ER que dejaste en el comentario y deberias devolverlo como dato aparte en la llamada ajax.

Saludos

Bueno, está funcionando bien!!
En definitiva solo se está usando la expresión regular y con eso alcanza.
Lo paso a SOLUCIONADO
Gracias