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