Estou com uma duvida, do por que não aparece o resultado no alert neste codigo abaixo:
Mesmo que eu tenha declarado as variaveis xx e yy nao retorna o valor no alert.
Estou usando o VScode.
<body>
No seu código, você está tentando calcular a soma dos valores xx
e yy
antes de atribuir os valores dos campos de entrada às variáveis. Como resultado, as variáveis xx
e yy
estão vazias quando a função soma()
é chamada, o que resulta em um resultado vazio ou NaN (Not a Number).
Para corrigir isso, você precisa mover as linhas que atribuem os valores dos campos de entrada para as variáveis xx
e yy
para antes de chamar a função soma()
e calcular o resultado final. Aqui está o código corrigido:
<body>
<form method="get">
<!-- Numeros -->
X: <input type="number" id="x" placeholder="Digite o 1º numero" required /><br/>
Y: <input type="number" id="y" placeholder="Digite o 2º numero" required /><br/>
</form>
<button onclick="myfunc()">Calcular</button>
<input type="button" value="Atualizar" onClick="window.location.reload()">
<script type="text/javascript">
function soma() {
var xx = document.getElementById("x").value;
var yy = document.getElementById("y").value;
return parseFloat(xx) + parseFloat(yy);
}
function myfunc() {
var resultadofinal = soma();
alert('Resultado é: ' + resultadofinal);
}
// Evento que é executado toda vez que uma tecla for pressionada no input
document.getElementById("y").onkeypress = function(e) {
// 13 é a tecla <ENTER>. Se ela for pressionada, mostrar o valor
if (e.keyCode == 13) {
myfunc();
e.preventDefault();
}
}
</script
Nessa versão corrigida do código, primeiro as variáveis xx
e yy
são atribuídas aos valores dos campos de entrada. Em seguida, a função soma()
é chamada para calcular o resultado final. Finalmente, o resultado é exibido em um alerta quando o botão "Calcular" é clicado ou a tecla Enter é pressionada. Certifique-se de converter os valores de entrada para números usando parseFloat()
para que a soma seja calculada corretamente.
Parece que o problema no seu código está relacionado ao momento em que você está calculando o resultado da soma e pegando os valores dos campos de entrada (xx e yy). No momento em que você está calculando o resultado final, as variáveis xx e yy ainda não têm os valores dos campos de entrada, então o resultado final não é calculado corretamente.
Aqui está uma versão corrigida do seu código:
<body>
<form method="get">
<!--Numeros-->
X: <input type="number" id="x" placeholder="Digite o 1º numero" required /><br />
Y: <input type="number" id="y" placeholder="Digite o 2º numero" required /><br />
</form>
<button onclick="myfunc()">Calcular</button>
<input type="button" value="Atualizar" onClick="window.location.reload()">
<script type="text/javascript">
// Funcao para realizar a soma dos valores
function soma(x, y) {
return x + y;
}
// Funcao para mostrar o valor do input
function myfunc() {
var xx = parseInt(document.getElementById("x").value);
var yy = parseInt(document.getElementById("y").value);
var resultadofinal = soma(xx, yy);
alert('Resultado é: ' + resultadofinal);
}
// Evento que é executado toda vez que uma tecla for pressionada no input
document.getElementById("y").onkeypress = function(e) {
// 13 é a tecla <ENTER>. Se ela for pressionada, mostrar o valor
if (e.keyCode == 13) {
myfunc();
e.preventDefault();
}
}
</script>
</body>
Nesta versão corrigida, o cálculo da soma é feito dentro da função myfunc()
, após obter os valores dos campos de entrada (xx e yy). Isso garante que os valores sejam atualizados corretamente antes de calcular o resultado da soma e exibir o alerta.