Ola pessoal, postando mais um probleminha no trabalho :-p
Probleminha em um site de um cliente. Um problema que ocorre muito com os programadores novos se não prestarem atenção nos detalhes. Aconteceu com os meus alunos, aconteceu agora com nosso estagiário.
E dizem que programar é fácil.
A linguagem JavaScript em questão utiliza a declaração de variáveis sem definição. Isto pode gerar alguns problemas.
Vamos ao código...
O código do formulário em HTML:
<form name="combin" action="pagina.php" method="post" OnSubmit="JavaScript:return valida_formulario()">
<input name="combinacao1" type="text" size="5" value=""/><br>
<input name="combinacao2" type="text" size="5" value=""/><br>
<input name="combinacao3" type="text" size="5" value=""/><br>
<input name="combinacao4" type="text" size="5" value=""/><br>
<input name="combinacao5" type="text" size="5" value=""/><br>
<input name="combinacao6" type="text" size="5" value=""/><br>
<input name="" type="reset" value="Limpar" /> <input type="submit" name="Submit" value="Enviar" />
</form>
E abaixo o código em JavaScript que faz validação do formulário, neste caso, a soma de todos os campos tem que ser 20. Pedro: O erro estava na hora de pegar os valores, o JavaScript estava definindo as variáveis como String. Por tanto na hora de somar, na verdade estava concatenando.
Utilizei a função parseInt para resolver isso! ;-)
<script language="JavaScript">
function valida_formulario()
{
var valor1 = parseInt(document.combin.combinacao1.value);
var valor2 = parseInt(document.combin.combinacao2.value);
var valor3 = parseInt(document.combin.combinacao3.value);
var valor4 = parseInt(document.combin.combinacao4.value);
var valor5 = parseInt(document.combin.combinacao5.value);
var valor6 = parseInt(document.combin.combinacao6.value);
var soma = 0;
soma = valor1+valor2+valor3+valor4+valor5+valor6;
if (soma == 20)
{
return true;
}
else
{
alert('Soma Diferente de Vinte!');
return false;
}
}
</sccript>
É isso ai! mais um post.
Abraços a todos.
Se no caso eu quero somar só 2 valores como eu faço?
ResponderExcluir(sou super noob ainda kkk.)