Ver Mensaje Individual
  #1 (permalink)  
Antiguo 30/07/2008, 16:09
osanjur
 
Fecha de Ingreso: abril-2008
Mensajes: 12
Antigüedad: 16 años, 1 mes
Puntos: 0
Funcion para varios campos usando focus()

Hola, tengo una funcion que valida el formato de la hora en varios campos de mi formulario, esto sucede en el evento onblur() de cada campo. Si la hora no es correcta deseo que el cursor se posicione sobre el campo que introdujo la hora incorrecta para que el usuario la corrija. Aqui esta el codigo. Se que tengo usar focus pero no se como decirle que lo haga sobre el campo que acabo de validar.

function CheckTime(str)
{
var hora = str.value;

if (hora.length!=5) {
alert("Introducir HH:MM");
return
}
a=hora.charAt(0) //<=2
b=hora.charAt(1) //<4
c=hora.charAt(2) //:
d=hora.charAt(3) //<=5
if ((a==2 && b>3) || (a>2)) {
alert("El valor que introdujo en la Hora no corresponde, introduzca un digito entre 00 y 23");
return;
}
if (d>5) {
alert("El valor que introdujo en los minutos no corresponde, introduzca un digito entre 00 y 59");
return;
}

if (c!=':') {
alert("Introduzca el caracter ':' para separar la hora y los minutos");
return;
}
}

los campos estan asi:

<input name="hora1" type="text" id="hora1" size="5" maxlength="5" onblur="CheckTime(this);" />
<input name="hora2" type="text" id="hora2" size="5" maxlength="5" onblur="CheckTime(this);" />
<input name="hora3" type="text" id="hora3" size="5" maxlength="5" onblur="CheckTime(this);" />
<input name="hora4" type="text" id="hora4" size="5" maxlength="5" onblur="CheckTime(this);" />

espero puedan ayudarme... saludos.