2
respostas

Como posso especificar que o campo altura só pode receber o valor com (ponto) x.xx

Na seguinte aula, reparei que se colocamos o valor da altura com virgula o Java não irá entender, reportará um "exampleName, your IMC is NaN" Pergunta: Como fazer para especificar para o usuário que só pode no formato ("0.00"), imaginei isso de duas formas, uma mensagem especificando isso na caixa de diálogo, ou (se existe essa possibilidade) criar um limitador que só passa para a próxima caixa de diálogo se estar preenchido corretamente. Alguém pode me ajudar nesta questão?

2 respostas
<meta charset="UTF-8">

<script>

function jumpLine () {
    document.write("<br><br>");
}

function show (pharase) {
    document.write(pharase);
    jumpLine ();
}

function calculatedImc (weight, height) {

    return weight / (height * height);
}

var name = prompt ("What's your name?");
var heightInformed = prompt (name + ", report your height");
var weightInformed = prompt (name + ", report your weight");

var imc = calculatedImc (weightInformed, heightInformed);

show (name + ", your IMC is " + imc);

</script>

Olá, Lucas! Tudo bom?

Primeiramente quero te pedir desculpas pela demora em dar um retorno.

Acredito que o que você estava querendo criar fosse uma mask, uma máscara, para a entrada de altura, "forçando" o usuário a digitar corretamente. Adorei a sua ideia, realmente ficaria ótimo, porém acredito que não seja possível usar máscaras pelo prompt, segundo o que pesquisei.

Uma solução que eu poderia te recomendar para que o usuário seja obrigado a digitar corretamente é usar um while! Um laço de repetição que vai executar constantemente determinado trecho de código se uma condição for verdadeira.

Deixo aqui duas opçoes de uso do while para esse caso:

  1. Com while:
var heightInformed = prompt(name + ", report your height");
var weightInformed = prompt(name + ", report your weight");

while (isNaN(heightInformed) || isNaN(weightInformed)) {
        alert("Invalid values! Type it again.")
        heightInformed = prompt(name + ", report your height");
        weightInformed = prompt(name + ", report your weight");
}
  1. Com do while:
do {
        var heightInformed = prompt(name + ", report your height");
        var weightInformed = prompt(name + ", report your weight");
} while (isNaN(heightInformed) || isNaN(weightInformed));

Em ambos as soluções, o conceito é bem simples, podemos ver que é verificado dentro da condição do while se o valor de altura ou de peso não são altura e, se não forem mesmo, o conteúdo dele (as perguntas) irão se repetir.

Espero que isso tenha te ajudado, qualquer dúvida estamos aqui. Bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado. ✓