Bom dia a todos,
Tenho uma dúvida que já venho tentando decifrar há dias, sem sucesso, e gostaria de pedir, se possível, que alguém me dissesse qual é o problema.
O meu código:
index.html
<html>
<head>
<script language="javascript" type="text/javascript">
function validar()
{
if(window.document.forms.principal.aposta.value==="")
{
alert("A quantidade de apostas nao pode estar vazio!!!");
return false;
}
//
if(window.document.forms.principal.numero.value==="")
{
alert("A quantidade de numeros nao pode estar vazio!!!");
return false;
}
//
if(window.document.forms.principal.estrela.value==="")
{
alert("A quantidade de estrelas nao pode estar vazio!!!");
return false;
}
}
function VerComp(obj)
{
if (isNaN(obj.aposta.value))
{
alert('Voce nao digitou um numero em quantidade de jogos!!!');
obj.aposta.value="";
}
if (isNaN(obj.numero.value))
{
alert('Voce nao digitou um numero em quantidade de numeros!!!');
obj.numero.value="";
}
if (isNaN(obj.estrela.value))
{
alert('Voce nao digitou um numero em quantidade de estrelas!!!');
obj.estrela.value="";
}
return false;
}
function LimitesNum(obj)
{
if (obj.numero.value<5
|| obj.numero.value>11)
{
alert('A quantidade de numeros tem que estar entre 5 e 11!!!');
obj.numero.value="";
document.getElementById('nu').focus();
}
return false;
}
function LimitesEst(obj)
{
var rec = document.getElementById("nu").value;
var rec2 = document.getElementById("es").value;
if (rec==5 && (rec2<2 ||rec2>11))
{
alert('A quantidade de estrelas tem que estar entre 2 e 11!!!');
obj.estrela.value="";
document.getElementById('es').focus();
return false;
}
else
if (rec==6 && (rec2<2 || rec2>11))
{
alert('A quantidade de estrelas tem que estar entre 2 e 11!!!');
obj.estrela.value="";
document.getElementById('es').focus();
return false;
}
else
if (rec==7 && (rec2<2 || rec2>9))
{
alert('A quantidade de estrelas tem que estar entre 2 e 9!!!');
obj.estrela.value="";
document.getElementById('es').focus();
return false;
}
else
if (rec==8 && (rec2<2 || rec2>5))
{
alert('A quantidade de estrelas tem que estar entre 2 e 5!!!');
obj.estrela.value="";
document.getElementById('es').focus();
return false;
}
else
if (rec==9 && (rec2<2 || rec2>4))
{
alert('A quantidade de estrelas tem que estar entre 2 e 4!!!');
obj.estrela.value="";
document.getElementById('es').focus();
return false;
}
else
if (rec==10 && (rec2<2 || rec2>3))
{
alert('A quantidade de estrelas tem que estar entre 2 e 3!!!');
obj.estrela.value="";
document.getElementById('es').focus();
return false;
}
else
if (rec==11 && rec2!==2)
{
alert('A quantidade de estrela so pode ser 2!!!');
obj.estrela.value="";
document.getElementById('es').focus();
return false;
}
return false;
}
</script>
</head>
<body>
<form name="principal" action="meuServlet" method="post">
<table align="center" border=1 width=400 height=25>
<tr height=25 class=meuEstilo1>
<td align=center><b>
<h2><font face="Arial"> Euromilhoes </font></h2>
<h4><font face="Arial">
Quantidade de jogos:
<input type="text" name="aposta" size="1"
onchange="return VerComp(this.form);">
</input>
</font></h4>
<!--Quantidade de numeros-->
<h4><font face="Arial">
Quantidade de numeros:
<input type="text" name="numero" size="1" id="nu"
onchange="return VerComp(this.form);"
onblur="return LimitesNum(this.form);">
</input>
</font></h4>
<!--Quantidade de estrelas-->
<h4><font face="Arial">
Quantidade de estrelas:
<input type="text" name="estrela" size="1" id="es"
onchange="return VerComp(this.form);"
onblur="return LimitesEst(this.form);">
</input>
</font></h4>
<input type="submit" value="Enviar" onclick="return validar();"></input>
</b></td></tr>
</table>
</form>
</body>
</html>
Ele possui as seguintes funções de javascript:
1) validar() --> Avisa, caso o campo de apostas esteja vazio;
2) VerComp(obj) --> Avisa, caso seja colocado um carácter que não seja numérico;
3) LimitesNum(obj) --> Avisa, caso a quantidade de números não seja 5 <= x <= 11;
4) LimitesEst(obj) --> infelizmente, só está funcionando para o primeiro "if". A partir do segundo, falha e eu não entendo qual a razão! :(
Por favor, alguém poderia me dizer qual é o problema?
Agradeço antecipadamente,