Porque quando uso a opção prompt e vou digitar o número aparece "NaN"?
Porque quando uso a opção prompt e vou digitar o número aparece "NaN"?
Oi Everson!
Poste o trecho do código que isso acontece. Só vendo o código para podermos dizer algo a respeito.
No aguardo!
Pode ser um erro no código mas de qualquer forma tente digitar a altura com ' . ' e não com ' , '.
Estava com o mesmo erro, porque estava digitando a altura com vírgula (1,77) quando o certo é usar o ponto (1.77).
O interessante é publicar o código para analisar melhor! Mas sua dica foi pertinente Pedro!!
Olá Everson, consulte aqui no fórum do curso no tópico "problemas com a função prompt" postada no dia 19/02 pelo usuário Artur. Lá também há demostração da solução bem legal para a sua dúvida .
Porém professor, fiquei com outra dúvida quando usamos a função prompt que recebe uma string como parâmetro. Se porventura , um usuário só venha teclar enter, ou clicar no botão OK, vai exibindo todas msg no pop-up até ocorrer o informativo de "Nan".
Agora haveria possibilidade de quando exibir um pop-up, somente aceitar o próximo passo, mediante a inserção de algum dado como caractere ou número pelo usuário?
Em que na lacuna não ficasse vazia no seu preenchimento para usabilidade da função, pois senão, o pop-up diminuiria a sua utilidade, por exemplo, no preenchimento de formulário de quadro de saúde - se foste este o caso para dinamizar o resultado. Agradeço pela ajuda.
Olá! Uma solução é você criar uma função especializada para capturar a entrada do usuário. Enquanto o que ele digitou não seja um número, você pergunta novamente. Nada a impede de criar outra função especializada apenas para capturar texto.
Você pode usar um while, caso já tenha chegado nessa aula:
<meta charset="UTF-8">
<script>
function leNumero(msg) {
var leitura = NaN;
while (isNaN(leitura) == true) {
leitura = parseFloat(prompt(msg));
}
return leitura;
}
function leTexto(msg) {
var leitura = '';
while (leitura == '') {
leitura = prompt(msg);
// remove os espaços, caso o usuário tenha digitado
// só espaços
leitura = leitura.trim();
}
return leitura;
}
let numero = leNumero('Digite um número inteiro');
alert(numero);
let texto = leTexto('Digite um texto');
alert(texto);
</script>
Eu poderia ter escrito um código mais enxuto, mas para essa etapa do curso ele é o mais fácil de ler.
Sucesso e bom estudo!
Olá professor Flavio,
Agradecida pela orientação. Ainda não cheguei na aula de funcionalidade do while. Vou testar aqui na descrição do código! Um abraço!