Validando Hora com JavaScript

[color=violet][/color]
Olá pessoal!

Eu estou add um javascript na minha página em jsf.
O script valida o horário, coloca os : e informa se o horário é válido ou não.
O code é esse:

[color=red][/color]
function Mascara_Hora(Hora){
var hora01 = ‘’;
hora01 = hora01 + Hora;
if (hora01.length == 2){
hora01 = hora01 + ‘:’;
document.forms[0].Hora.value = hora01;
}
if (hora01.length == 5){
Verifica_Hora();
}
}
function Verifica_Hora(){
hrs = (document.forms[0].Hora.value.substring(0,2));
min = (document.forms[0].Hora.value.substring(3,5));
estado = “”;
if ((hrs < 00 ) || (hrs > 23) || ( min < 00) ||( min > 59)){
estado = “errada”; }

if (document.forms[0].Hora.value == “”) {
estado = “errada”;
}
if (estado == “errada”) {
alert(“Hora invalida!”);
document.forms[0].Hora.focus();
}
}

Nessa função ele tem como parâmetro(não sei se é assim que se fala em javascript) o valor hora isso ele recebe da página, que tem esse code:

sendo que eu chamo o script certinho com o codigo la, que chama o arquivo em extensão .js

O problema não é isso funcionar, se vcs testarem ai, ele funciona certinho , o problema é qdo eu crio outro input e chamo essa função ai não funciona mais!!
Eu queria saber como é que eu chamo a mesma função em javascript so alterando os parametros?Sendo que qdo for o 1º inout ele recebe o valor Hora e valida e qdo for o 2º input ele recebe o valor Hora2 e valida, alguém tem i´dia de como se faz isso?

é porque na sua função js vc só usa o campo document.forms[0].Hora pra validar. se quiser uma função mais generica, pode fazer assim:

[code]
function Mascara_Hora(Hora, campo){
var hora01 = ‘’;
hora01 = hora01 + Hora;
if (hora01.length == 2){
hora01 = hora01 + ‘:’;
campo.value = hora01;
}
if (hora01.length == 5){
Verifica_Hora(campo);
}
}

function Verifica_Hora(campo){
hrs = (campo.value.substring(0,2));
min = (campo.value.substring(3,5));
estado = “”;
if ((hrs < 00 ) || (hrs > 23) || ( min < 00) ||( min > 59)){
estado = “errada”;
}

if (campo.value == “”) {
estado = “errada”;
}
if (estado == “errada”) {
alert(“Hora invalida!”);
campo.focus();
}
} [/code]

dai pra chamar a função, você pode fazer:

ou só passar o this, e o value vc pega do campo mesmo.

Eu entendi que se eu usar so o document.forms[0] só estarei validando um campo, mas o que vc fez no input eu não entendi, na verdade é isso o que eu quero fazer:


Então estarei criando dois inputs certo?Agora como é que a funçaõ em js sabe que no 1° input é esse id que ela deve validar e no 2° input é outro id para validar?
Pq eu tentei fazer assim como vc fez e a função nem funciona =(

O problema é saber como essa função muda de parâmetro!

Espero que alguem me ajude.

Aline, é que você está passando o campo junto com a função que eu te mostrei, quando você digita o this no parâmetro.

é a mesma coisa que em vez de this, eu tivesse usado document.forms[0].Hora.value, para o 1o e document.forms[0].Hora1.value para o segundo input.
como você está passando o campo, não precisa de outra referência para o campo, se você alterar o parâmetro o campo também altera.

EEEEEEEEEEEEEEEEEEEEEEEEEEEEEE :smiley: :smiley: :smiley: :smiley: :smiley: :smiley:

Consegui !!!

Cara valeu mesmo!

Muito obrigada, acabou de salvar meu projeto rsrsrsr

Valeu!!!