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

TEMA: Validar Rut en Jform

Validar Rut en Jform 25 Oct 2010 21:37 #3146

  • La_Negr4
  • Avatar de La_Negr4 Autor del tema
  • Fuera de línea
  • Fresh Boarder
  • Fresh Boarder
  • Mensajes: 4
  • Gracias recibidas 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!

Por favor, Identificarse o Crear cuenta para unirse a la conversación.

Re: Validar Rut en Jform 26 Oct 2010 06:24 #3150

  • willin
  • Avatar de willin
  • Fuera de línea
  • Administrator
  • Administrator
  • Cuidado! Ya no estoy solo...
  • Mensajes: 1897
  • Karma: 67
  • Gracias recibidas 44
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,

Por favor, Identificarse o Crear cuenta para unirse a la conversación.

Guillermo Bravo
Administrador
Foro Joomla Chile




Re: Validar Rut en Jform 29 Oct 2010 14:13 #3194

  • La_Negr4
  • Avatar de La_Negr4 Autor del tema
  • Fuera de línea
  • Fresh Boarder
  • Fresh Boarder
  • Mensajes: 4
  • Gracias recibidas 0
Muchas gracias, no habia tenido tiempo de responder

probare y les cuento como me fue!

Por favor, Identificarse o Crear cuenta para unirse a la conversación.

Re: Validar Rut en Jform 02 Feb 2011 23:14 #3945

Alguna idea de como se podría aplicar esto con Breezingforms?

Gracias.

Por favor, Identificarse o Crear cuenta para unirse a la conversación.

Re: Validar Rut en Jform 03 Feb 2011 02:17 #3950

  • willin
  • Avatar de willin
  • Fuera de línea
  • Administrator
  • Administrator
  • Cuidado! Ya no estoy solo...
  • Mensajes: 1897
  • Karma: 67
  • Gracias recibidas 44
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,

Por favor, Identificarse o Crear cuenta para unirse a la conversación.

Guillermo Bravo
Administrador
Foro Joomla Chile

Re: Validar Rut en Jform 06 Feb 2011 15:21 #3963

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.

Por favor, Identificarse o Crear cuenta para unirse a la conversación.

Daniel Martinez
Moderador
Comunidad Joomla Chile
  • Página:
  • 1
  • 2
Tiempo de carga de la página: 0.187 segundos
Gracias a Foro Kunena