Ver Mensaje Individual
  #3 (permalink)  
Antiguo 20/02/2007, 12:10
Avatar de Chaudx
Chaudx
 
Fecha de Ingreso: marzo-2002
Ubicación: Quilpué, Chilito lindo
Mensajes: 345
Antigüedad: 22 años, 2 meses
Puntos: 2
Re: validar formulario con campo de nombre dinamico

Gracias..
Creo que eso lo tengo claro... el punto no es obtener el value del elemento sino el name, para que me haga la corrección instantánea... he probado con

window.document.form1.texto.value = invertido.toUpperCase()

ya que la función toma el valor como "texto", pero no me funciona


adjunto código de la función

Código:
function Rut(texto)

{	

	var tmpstr = "";	

//acá tomo el valor del campo	
var campo = texto.name;	
	
	for ( i=0; i < texto.value.length ; i++ )		

		if ( texto.value.charAt(i) != ' ' && texto.value.charAt(i) != '.' && texto.value.charAt(i) != '-' )

			tmpstr = tmpstr + texto.value.charAt(i);	

	texto = tmpstr;	

	largo = texto.length;	



	if ( largo < 2 )	

	{		

		alert("Debe ingresar el rut completo")		

setTimeout('document.form1.'+ campo +'.focus()',15);	
//esto de abajo está comentado porque el nombre del campo es variable	
//	window.document.form1.rut.focus();		

		//window.document.form1.rut.select();		

		return false;	

	}	



	for (i=0; i < largo ; i++ )	

	{			

		if ( texto.charAt(i) !="0" && texto.charAt(i) != "1" && texto.charAt(i) !="2" && texto.charAt(i) != "3" && texto.charAt(i) != "4" && texto.charAt(i) !="5" && texto.charAt(i) != "6" && texto.charAt(i) != "7" && texto.charAt(i) !="8" && texto.charAt(i) != "9" && texto.charAt(i) !="k" && texto.charAt(i) != "K" )

 		{			

			alert("El valor ingresado no corresponde a un R.U.T valido");			

//esta es la única manera de hacer que el focus funcione en firefox
setTimeout('document.form1.'+ campo +'.focus()',15);			
			//window.document.form1.rut.focus();			

//esto de abajo está descomentado porque el nombre del campo es variable			
window.document.form1.rut.select();			

			return false;		

		}	

	}	



	var invertido = "";	

	for ( i=(largo-1),j=0; i>=0; i--,j++ )		

		invertido = invertido + texto.charAt(i);	

	var dtexto = "";	

	dtexto = dtexto + invertido.charAt(0);	

	dtexto = dtexto + '-';	

	cnt = 0;	



	for ( i=1,j=2; i<largo; i++,j++ )	

	{		

		//alert("i=[" + i + "] j=[" + j +"]" );		

		if ( cnt == 3 )		

		{			

			dtexto = dtexto + '.';			

			j++;			

			dtexto = dtexto + invertido.charAt(i);			

			cnt = 1;		

		}		

		else		

		{				

			dtexto = dtexto + invertido.charAt(i);			

			cnt++;		

		}	

	}	



	invertido = "";	

	for ( i=(dtexto.length-1),j=0; i>=0; i--,j++ )		

		invertido = invertido + dtexto.charAt(i);	



	window.document.form[1].campo.value = invertido.toUpperCase()		



	if ( revisarDigito2(texto, campo) )		

		return true;	



	return false;

}
Espero entienda lo que quiero hacer
__________________
Servicios computacionales
Linux registered User # 306587
Ubuntu user #14563