<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>
<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>
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!
Por que no caso de altura foi declarado o "name" ?
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!