I believe your error was in the &&(E) operator instead of ||(OR). I made a practical example to show you better.
I separated the files so the elements are in a file html and the JS is in another file that I imported as you can see on <script src="./index.js"></script>
.
HTML
<header>
<h1>Número</h1>
</header>
<main>
<!-- Um formulário com atributo "novalidate" para o formulário não se dar submit automaticamente -->
<form id="calculo" novalidate>
<input
type="number"
id="numberId"
placeholder="Coloque um número entre 1 e 100."
/>
<button type="submit">Verificar</button>
</form>
</main>
<script src="./index.js"></script>
JS file where the magic rolls, here I took the ids of the elements and assigns to a constant with the same name to facilitate and then when you click the "check" button it will perform this function.
// Pegand o id dos elementos
const calculo = document.getElementById("calculo");
const numberId = document.getElementById("numberId");
// Uma função de submit para validar se o número é menor que 1 ou maior que 100
calculo.onsubmit = (event) => {
event.preventDefault();
if (numberId.value < 1 || numberId.value > 100) {
alert("Número invalido!");
// Se o número não corresponder com o valor posto ele retorna false
return false;
}
// Depois do número validado ele limpa o value do input
numberId.value = "";
};
I put the code here so you can see in real time it running, just click on execute.
// Pegand o id dos elementos
const calculo = document.getElementById("calculo");
const numberId = document.getElementById("numberId");
// Uma função de submit para validar se o número é menor que 1 ou maior que 100
calculo.onsubmit = (event) => {
event.preventDefault();
if (numberId.value < 1 || numberId.value > 100) {
alert("Número invalido!");
// Se o número não corresponder com o valor posto ele retorna false
return false;
}
// Depois do número validado ele limpa o value do input
numberId.value = "";
};
<!DOCTYPE html>
<html lang="pt-br">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Número</title>
</head>
<body>
<header>
<h1>Número</h1>
</header>
<main>
<!-- Um formulário com atributo "novalidate" para o formulário não se dar submit automaticamente -->
<form id="calculo" novalidate>
<input
type="number"
id="numberId"
placeholder="Coloque um número entre 1 e 100."
/>
<button type="submit">Verificar</button>
</form>
</main>
<script src="./index.js"></script>
</body>
</html>
You are passing an element to the function
Number
. The correct is to pass only the value:Number(num.value)
.– Valdeir Psr
no , from the tbm error, I think it’s in html
– Vitor Santos
https://codepen.io/valdeir2000/pen/YzGYVLb
– Valdeir Psr
n is going to give error in the input, but I saw that your code is right . must be something in the settings of my pc, vlw msm like this
– Vitor Santos
Uncaught Referenceerror: click is not defined ta giving this in the after click
– Vitor Santos
This means you need to implement the function
clique
. Post your code on the Pastebin– Valdeir Psr