function validaAno(ano) {
data = new Date();
if (ano.value > data.getFullYear) {
window.alert(“Ano inválido. Insira um ano menor ou igual ao atual.”);
document.form_inclusao.ano.focus();
return(false);
}
else {
return(true);
}
}
o focus não volta para o campo qndo a função retorna “false”…oq tem de errado?
Esse código está realmente funcionando? É javascript mesmo? Assim fica certo:
data = new Date();
// sem parseInt estava comparando String
// e sem os "()" na chamada de getFullYear
// estava comparando com um objeto Function
if( parseInt( ano.value ) > data.getFullYear() ) {
window.alert( "Ano inválido. Insira um ano menor ou igual ao atual." );
document.form_inclusao.ano.focus();
return false;
}
else {
return true;
}
Quanto ao campo não ganhar foco, o código está certo, então outra coisa está errada. Possibilidades:
Não tem um formulário com o name “form_inclusao”
Não tem um input com name “ano” dentro do formulário
Ao validar o formulário outro campo ganha foco depois de executada a funçao “validaAno()”
boaglio
allsdragon ,
Crie tópicos com um título mais claro…
Aa postar código use as tags CODE, aí fica assim:
function validaAno(ano) {
data = new Date();
if (ano.value > data.getFullYear) {
window.alert("Ano inválido. Insira um ano menor ou igual ao atual.");
document.form_inclusao.ano.focus();
return(false);
}
else {
return(true);
}
}
Coloque um id=“ano” no campo ANO do seu FORM e
no código troque document.form_inclusao.ano.focus();
por document.getElementById(‘ano’).focus();
function validaAno(ano) {
data = new Date();
if (eval(ano.value) > data.getFullYear()) {
window.alert("Ano inválido. Insira um ano menor ou igual ao atual.");
document.form_inclusao.ano.focus();
return(false);
}
else {
return(true);
}
}
Você precisa comparar número com número e getFullYear() é um “método” com retorno.
E evite usar onBlur() isso avacalha a página e pode deixar muito usuário irritado. Use, ou onChange ou, ao clicar no botão salvar, por exemplo, chame uma função genérica que valida todos os campos no formulário.
A
allsdragon
fazendo essas alterações a função não funciona
Pedrosa
Cara tente assim:
functionvalidaAno(ano){
data=newDate();if(eval(ano.value)>data.getFullYear()){
alert("Ano inválido. Insira um ano menor ou igual ao atual.");document.forms[0].anomodelo.focus();return;}
}
J
julianostr
Vixi, caramba, não percebi o nome do campo que tem o evento onBlur().
Foi mal…
Com a sugestão do Pedrosa agora deve funcionar.
Tenta aí…
Mas preste atenção à mensagem de erro em javascript. Com isso você já deveria ter corrigido o problema.