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

A acessar os input de um form por meio da propriedade _name_?

Olá, no curso a instrução é acessar os inputs de um form por meio da propriedade name .

Mas conforme o html abaixo usado no curso, os inputs tem a propriedade name e id com o mesmo nome:

<section class="container">
    <h2 id="titulo-form">Adicionar novo paciente</h2>
    <form id="form-adiciona">
        <div class="grupo">
            <label for="nome">Nome:</label>
            <input id="nome" name="nome" type="text" placeholder="digite o nome do seu paciente" class="campo">
        </div>
        <div class="grupo">
            <label for="peso">Peso:</label>
            <input id="peso" name="peso" type="text" placeholder="digite o peso do seu paciente" class="campo campo-medio">
        </div>
        <div class="grupo">
            <label for="altura">Altura:</label>
            <input id="altura" name="altura" type="text" placeholder="digite a altura do seu paciente" class="campo campo-medio">
        </div>
        <div class="grupo">
            <label for="gordura">% de Gordura:</label>
            <input id="gordura" name="gordura" type="text" placeholder="digite a porcentagem de gordura do seu paciente" class="campo campo-medio">
        </div>

        <button id="adicionar-paciente" class="botao bto-principal">Adicionar</button>
    </form>
</section>

então eu troquei o nome de todas as propriedades id adicionando um x e o nome das propriedades name adicionando um y no final e ficou assim:

        <section class="container">
            <h2 id="titulo-form">Adicionar novo paciente</h2>
            <form id="form-adiciona">
                <div class="grupo">
                    <label for="nome">Nome:</label>
                    <input id="nomex" name="nomey" type="text" placeholder="digite o nome do seu paciente" class="campo">
                </div>
                <div class="grupo">
                    <label for="peso">Peso:</label>
                    <input id="pesox" name="pesoy" type="text" placeholder="digite o peso do seu paciente" class="campo campo-medio">
                </div>
                <div class="grupo">
                    <label for="altura">Altura:</label>
                    <input id="alturax" name="alturay" type="text" placeholder="digite a altura do seu paciente" class="campo campo-medio">
                </div>
                <div class="grupo">
                    <label for="gordura">% de Gordura:</label>
                    <input id="gordurax" name="gorduray" type="text" placeholder="digite a porcentagem de gordura do seu paciente" class="campo campo-medio">
                </div>

                <button id="adicionar-paciente" class="botao bto-principal">Adicionar</button>
            </form>
        </section>

id e name com valores diferentes e tanto esse código:

botaoAdicionar.addEventListener('click', function (event) {
    event.preventDefault();

    var form = document.querySelector('#form-adiciona')
    var nome = form.nomex.value;
    var peso = form.pesox.value;
    var altura = form.alturax.value;
    var gordura = form.gordurax.value;
});

quanto esse funcionam:

botaoAdicionar.addEventListener('click', function (event) {
    event.preventDefault(); 

    var form = document.querySelector('#form-adiciona')

    var nome = form.nomey.value;
    var peso = form.pesoy.value;
    var altura = form.alturay.value;
    var gordura = form.gorduray.value;
});

Eu consigo acessar os inputs tanto pela propriedade name quanto pela id, é isso? Eu tinha um conceito que só era possível acessar os inputs com JavaScript através da propriedade id

Abraços

3 respostas

Oi Leandro tudo bem?

É isso mesmo, também não sabia não . Na verdade eu achava que só podia acessar pelo name rsrsrs.

Fiz essa página e testei no Chorme, Firefox e IE e funcionou.

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Teste do Formulário</title>
</head>
<body>
        <section class="container">
                <h2 id="titulo-form">Adicionar novo paciente</h2>
                <form id="form-adiciona">
                    <div class="grupo">
                        <label for="nome">Nome:</label>
                        <input id="xnome" name="ynome" value="encontrado" type="text" placeholder="digite o nome do seu paciente" class="campo">
                    </div>



                </form>
            </section>


            <script>

                alert("Procurando por xnome:"+document.forms[0].xnome.value);
                alert("Procurando por ynome:"+document.forms[0].ynome.value);

            </script>
</body>
</html>

Espero ter ajudado!!!

solução!

Boa noite, Leandro! Como vai?

Exatamente, é possível acessar um campo do formulário utilizando o name ou o id dele!

Contudo, a boa prática é dar preferência pelo uso do id pois é ele que identifica unicamente seu elemento HTML uma vez que a propriedade name é destinada a servir apenas como etiqueta das informações que são trafegadas quando o formulário é submetido.

Pegou a ideia? Qualquer coisa é só falar!

Grande abraço e bons estudos, meu aluno!

Olá Pessoal, tudo bem.

Exatamente André, eu sempre utilizei pela propriedade id , e como no curso é frisado a propriedade name que eu usava até o momento apenas para o postback conforme mencionou o Gabriel.

Vou continuar seguindo dessa forma conforme a boa prática comentada pelo Gabriel.

Abraços pessoal, valeu pelo retorno.