Bienvenido, Invitado
Nombre de Usuario: Contraseña:
  • Página:
  • 1
  • 2

TEMA: Validar Rut en Jform

Validar Rut en Jform 6 años 1 mes antes #3146

  • La_Negr4
  • Avatar de La_Negr4
  • Fuera de línea
  • Fresh Boarder
  • Mensajes: 4
  • Karma: 0
Hola amigos:
Tengo un formulario hecho en Jform, el cual pide un par de datos...todo funciona a la perfección el problema es que nose como puedo validar el campo rut, las personas se registran y pueden poner cualquier número.

Cualquier ayuda sera bien recibida
gracias!
El administrador ha desactivado la escritura pública.

Re: Validar Rut en Jform 6 años 1 mes antes #3150

  • willin
  • Avatar de willin
  • Fuera de línea
  • Administrator
  • Cuidado! Ya no estoy solo...
  • Mensajes: 1897
  • Gracias recibidas 44
  • Karma: 67
Estimada,

Hice algunas pruebas, descargué el componente y lo instalé en local (hay traducción la español, si no la tienes puedes descargarla directamente desde este link).

Ahora bien, lo que conseguí es poder insertar una regla de validación siguiendo las siguientes instrucciones:

Abre con tu notepad una hoja en blanco y pégale la siguiente línea
^\d{1,2}\.\d{3}\.\d{3}[-][0-9kK]{1}$
Guárdalo como rut.regx una vez guardado cópialo y pégalo en la siguiente ruta: administrator/components/com_jforms/plugins/elements/textbox/validation/

Una vez que hayas copiado y pegado, te vas a la ruta administrator/components/com_jforms/plugins/elements/textbox/parameters.xml y buscas las siguientes líneas:
<param name="validation" description='JFORMSTEXTVALIDATION' type="list" label="Validation" default='NoValidation' valueType='string' translate='0'>
			<option value='NoValidation'>No validation</option>
			<option value='Email'>E-mail</option>
			<option value='AlphaNumeric'>Alphanumeric</option>
			<option value='Numeric'>Numeric</option>
			<option value='ZipCode'>Zip Code</option>
			<option value='Other'>Other (Specify)</option>
			</param>

En esas líneas, antes de </param> debes agregar esta línea: <option value='rut'>rut</option>
Luego, en el formulario creado, a la caja de texto en donde estás insertando el rut, en la pestaña "Element", en la lista desplegable, seleccionas rut y guardas tu formulario.

Ahora bien, con este proceso lo único que conseguirás es que al momento de ingresar el rut, si no lo hace en el formato "xx.xxx.xxx-x", entonces arrojará una línea que dirá que los datos son inválidos, pero no verificará el dígito verificador.

El módulo 11, que es el nombre con el que se conoce al algoritmo que calcula el dígito verificador de un rut, tiene varias librerías, pero lamentablemente no encuentro la forma de poder insertar alguna de ellas en un botón de validación o en el botón enviar.

Si revisas este link o este link verás que ambos funcionan, pero hacen una llamada a un script, el ideal sería poder insertar ese script para que funcione a través del botón enviar, cosa que si el rut está malo, entonces no envíe el formulario, sino que indique que el rut es incorrecto.

Pedí ayuda en el foro del desarrollador y a los moderadores de Joomla.cl a ver si tenemos suerte por cualquiera de ambas vías.

Mientras, puedes probar la opción que te entrego, no es el óptimo, pero al menos podrás ir practicando con las modificaciones al componente. :)

Un cordial saludo,
Guillermo Bravo
Administrador
Foro Joomla Chile
El administrador ha desactivado la escritura pública.




Re: Validar Rut en Jform 6 años 1 mes antes #3194

  • La_Negr4
  • Avatar de La_Negr4
  • Fuera de línea
  • Fresh Boarder
  • Mensajes: 4
  • Karma: 0
Muchas gracias, no habia tenido tiempo de responder

probare y les cuento como me fue!
El administrador ha desactivado la escritura pública.




Re: Validar Rut en Jform 5 años 10 meses antes #3945

  • sinclavos
  • Avatar de sinclavos
  • Fuera de línea
  • Fresh Boarder
  • Mensajes: 14
  • Karma: 0
Alguna idea de como se podría aplicar esto con Breezingforms?

Gracias.
El administrador ha desactivado la escritura pública.

Re: Validar Rut en Jform 5 años 10 meses antes #3950

  • willin
  • Avatar de willin
  • Fuera de línea
  • Administrator
  • Cuidado! Ya no estoy solo...
  • Mensajes: 1897
  • Gracias recibidas 44
  • Karma: 67
Estimado,

Dejé este tema abierto desde el primer post a la espera de que surja alguna idea... Básicamente lo que debemos hacer es insertar en módulo 11, que es como se llama a la formula que permite determinar el dígito verificador, en los campos del formulario.

La verdad es que dentro de mi escaso tiempo lo he intentado un par de veces, pero sin éxito, esa es la razón por la que el tema sigue abierto, a la espera de alguien que se anime a intentarlo.

Atento a tus comentarios, recibe un cordial saludo,
Guillermo Bravo
Administrador
Foro Joomla Chile
El administrador ha desactivado la escritura pública.

Re: Validar Rut en Jform 5 años 10 meses antes #3963

  • danylocl
  • Avatar de danylocl
  • Fuera de línea
  • Moderator
  • Mensajes: 86
  • Karma: 5
Hola,

De momento solo he tenido tiempo para probarlo en BreezingForms que es el que uso yo. Lo he probado y parece que funciona bien, pero me gustaría que alguien lo confirmara.

El proceso para implementarlo en BreezingForms seria ir a Componentes >> Breezing Forms >> Manage Scripts y añadir este:
function ff_validar_rut(element, message ) {
	if (element.value == '') {
		if (message=='') message = element.name+" debe ser valido.\n";
		ff_validationFocus(element.name);
		return message;	
	}
        
	var tmpstr = ""; 
	var intlargo = element.value;
 
	if (intlargo.length> 0) { 
		crut = element.value;
		largo = crut.length; 

 
		for ( i=0; i <crut.length ; i++ ) {
			if ( crut.charAt(i) != ' ' && crut.charAt(i) != '.' && crut.charAt(i) != '-' ) { 
			tmpstr = tmpstr + crut.charAt(i); 
		} 
	}	

	rut = tmpstr; 
	crut=tmpstr; 
	largo = crut.length; 
	if ( largo> 2 ){ 
		rut = crut.substring(0, largo - 1); 
	}else rut = crut.charAt(0); 
 
	dv = crut.charAt(largo-1); 
	if ( rut == null || dv == null ) return 0; 
		var dvr = '0'; 
		suma = 0; 
		mul = 2; 
 
		for (i= rut.length-1 ; i>= 0; i--) { 
			suma = suma + rut.charAt(i) * mul; 
			if (mul == 7) mul = 2; 
			else mul++; 
		} 
 
		res = suma % 11; 
		if (res==1) dvr = 'k'; 
		else if (res==0) dvr = '0'; 
		else { dvi = 11-res; dvr = dvi + ""; } 
 
		if ( dvr != dv.toLowerCase() ) { 
			if (message=='') message = element.name+" debe ser valido.\n";
	        ff_validationFocus(element.name);
			return message;	
		} 
		return '';
	} 
}

Saludos.
Daniel Martinez
Moderador
Comunidad Joomla Chile
El administrador ha desactivado la escritura pública.
  • Página:
  • 1
  • 2
Tiempo de carga de la página: 0.231 segundos
Gracias a Foro Kunena