Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

Nao foi declarado o name do campo percentual de gordura e esta funcionando. Por que ?

<div class="grupo">
            <label for="gordura">% de Gordura:</label>
            <input id="gordura" type="text" placeholder="digite a porcentagem de gordura do seu paciente" class="campo campo-medio">
        </div>
3 respostas

Oi, Cida, tudo bem?

A relação entre o label e o input é feita entre o for na tag label e o id da tag input. O atributo for especifica o id do elemento do formulário ao qual o rótulo deve ser vinculado. Mas para ter os valores submetidos do form, precisa-se ter o atributo name.

No javascript, o instrutor irá usar o id para capturar os valores digitados pelo usuário.

Se ficou alguma dúvida é só falar!

Altura:

Por que no caso de altura foi declarado o "name" ?

solução!

Oi, Cida!

Utilizamos a propriedade value para capturar o valor que foi digitado naquele determinado input. A propriedade value define ou retorna o valor do atributo value de um campo de texto.

No caso do código, o instrutor cria uma variável avar form = document.querySelector("#form-adiciona"); para pegar o form do mundo html e trazer para o mundo javascript.

E para pegar cada valor de cada input utilizamos a propriedade value. Foi criada uma fiunção function obtemPacienteDoFormulario(form) para pegar cada valor de cada input:

function obtemPacienteDoFormulario(form) {
    var paciente = {
        nome: form.nome.value,
        peso: form.peso.value,
        altura: form.altura.value,
        gordura: form.gordura.value,
        imc: calculaImc(form.peso.value, form.altura.value)
    }
    return paciente;
}

Onde é criado um objeto em que é capturado os valores a partir do name de cada input, ou seja, vá em form vai no name="peso" e pega o valor dele, o mesmo para a altura, e os demais campos. Mas caso não tenha o name mas tenha o artibuto id, o valor ainda sim é capturado sem problema, por isso que o valor da gordura é capturado.

A tributo name assim como o id podem ser usados como referência para o Javascript, então, você tanto pode utilzar o id como o name, mas sem nenhum deles, não tem como capturar o valor, se assim for, a mensagem de erro form.gordura is undefined é retornada.

Ficou um pouco mais claro? Qualquer dúvida é só falar!