Ir para conteúdo
soyer2018

Java Script - DOM

Recommended Posts

Bom dia

 

to aprendendo por conta html, css e java script, eu criei um exercício onde eu criei uma input no html:

 

<input type="number" onclick="teste()">

 

e no java script eu quero o seguinte, quando eu clico no input, quero que ele armazene o número que cliquei e informe através do alert.

fiz o seguinte código:

function teste() {

var number = document.getElementByName('input', 'number').values;

alert('seu numero', + number);

 

};

 

porém ele só mostra o alerta mas sem mostrar o número,, como posso resolver esse problema.?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Han?! Como assim está mostrando o alerta sendo que temos o erro aqui:

11 horas atrás, soyer2018 disse:

var number = document.getElementByName('input', 'number').values;

getElementByName Essa função não existe, a não ser que esteja usando algum tipo de biblioteca que subtrai essa função.

Enfim que seja, para podermos chegar a algum elemento temos que localizar-lo, nesse caso o input pode receber por exemplo um atributo name/id/class/data etc... ou mesmo chegar até ele através de sua tag.

<input type="number" name="nome_do_input" onclick="teste()">

<script>
    function teste() {
        //var number = document.getElementByName('input', 'number').values; // Errado não existe "getElementByName" / não existe "values"
        //alert('seu numero', +number); // Errado você não pode concatenar e somar um valor inexistente
        
        var number = document.getElementsByName('nome_do_input')[0].value;
        // Ou
        var number = document.getElementsByTagName('input')[0].value;
        
        console.log('seu numero ' + number);
        // Ou
        console.log('seu numero %s', number);
    }
</script>

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora

  • Conteúdo Similar

    • Por rfael023
      Pessoal, bom dia!
       
      Estou iniciando no JS e quero automatizar algumas ações realizadas por humanos. Uma delas, preciso acessar um site e fazer o download de arquivo, porém, neste site especifico, não estou conseguindo passar da tela de login. Estou testando essa parte  no console do browser mesmo:
       
      var username = window.document.getElementById("username") undefined var password = window.document.getElementById("password") undefined var signin = window.document.querySelector(".splButton-primary.btn") undefined username.value = "usuariovalue" "usuariovalue" password.value = "passwordvalue" "password value" signin.click() Mas quando eu disparo o click, da usuário e senha errada e no console da a seguinte mensagem: 
       
      POST https://siteexemple/en-US/account/login 401 (Unauthorized) common.js:27
       
      Se eu digito o usuário e senha na mão e uso o console apenas para clicar no botão, ele acessa normalmente. Segue abaixo, bloco HTML do site:
       
      <form method="post" class="loginForm" action="/en-US/account/login"> <div style="display: none" data-cid="view200" class="account-login-firsttime" data-view="views/account/login/FirstTime" data-render-time="0"> <h2>First time signing in?</h2> <p>If you've forgotten your username or password, please contact your Splunk administrator.</p> <table> <tbody><tr> <td>username</td> <td>admin</td> </tr> <tr> <td>password</td> <td>changeme</td> </tr> </tbody> </table> </div> <fieldset> <div class="control account-login-textcontrol control-default" data-cid="view197" data-view="views/account/login/TextControl" data-name="username" data-render-time="0"> <span class="uneditable-input " data-role="uneditable-input" style="display:none"></span> <input type="text" name="username" class=" " value="" autocomplete="off" id="username" placeholder="Username"> </div> <div class="control account-login-textcontrol control-default" data-cid="view199" data-view="views/account/login/TextControl" data-name="password" data-render-time="0"> <span class="uneditable-input " data-role="uneditable-input" style="display:none"></span> <input type="password" name="password" class=" " value="" autocomplete="off" id="password" placeholder="Password"> </div><input class="splButton-primary btn" type="submit" value="Sign in"> <input type="hidden" name="cval" value="1900007162"> <input type="hidden" name="return_to" value="/en-US/"> </fieldset> </form> Conseguem me ajudar? Estou iniciando no JS.
       
      Agradeço, desde já!
    • Por renan mafra
      Olá pessoal,
      Estou aprendendo JS há alguns meses. Como todo processo de aprendizagem aparecem certas lacunas, dúvidas....
      A minha é a seguinte: Estou tendo dificuldade em atrelar elementos do tipo (arrays/listas/vetores) retornados pelos
      métodos do DOM e atrelá-los a eventos. Nesse código abaixo eu queria transformar cada dia de um calendário em
      um objeto clicável e estou tendo dificuldade em manipular os vetores retornados e atrelá-los A CADA DIA.,
      alguém pode dar essa luz ??
       
      segue o código:
       
      <script> window.onload = function(){ var msg = document.getElementById("msg"); var el = document.getElementById("mes"); var elemento = el.getElementsByClassName("dia"); /* elemento[0].onclick = function(){ elemento[0].style.backgroundColor = "#ccc"; } */ elemento[1].onclick = function(){ elemento[1].style.backgroundColor = "#ccc"; } elemento[2].onclick = function(){ elemento[2].style.backgroundColor = "#ccc"; } elemento[3].onclick = function(){ elemento[3].style.backgroundColor = "#ccc"; } } </script> </head> <body> <table id="mes"> <tr> <td class="dia">1</td><td class="dia">2</td><td class="dia">3</td><td class="dia">4</td><td class="dia">5</td><td class="dia">6</td><td class="dia">7</td> </tr> <tr> <td class="dia">8</td><td class="dia">9</td><td class="dia">10</td><td class="dia">11</td><td class="dia">12</td><td class="dia">13</td><td class="dia">14</td> </tr> <tr> <td class="dia">15</td><td class="dia">16</td><td class="dia">17</td><td class="dia">18</td><td class="dia">19</td><td class="dia">20</td><td class="dia">21</td> </tr> <tr> <td class="dia">22</td><td class="dia">23</td><td class="dia">24</td><td class="dia">25</td><td class="dia">26</td><td class="dia">27</td><td class="dia">28</td> </tr> <tr> <td class="dia">29</td><td class="dia">30</td><td class="dia">31</td> </tr> </table> </body> </html> Já usei função fora do onLoad, já usei loop for mas to quebrando a cabeça aqui.
       
      Eu gostaria que um único botão (o dia clicado) em uma função conseguisse fazer o trabalho, tipo assim:
            
             elemento[x].onclick =  function(){
                       elemento[x].style.backgroundColor = "#ccc";
              }
       
      qual a forma correta de fazer isso ????
       
      agradeço a ajuda.
       
    • Por thgsousa3122
      <?php $url = 'www.site.com'; $dadosSite = file_get_contents($url); echo $dadosSite; ?> <script type="text/javascript"> window.onload = function(){ var x = document.getElementsByClassName("fraction")[0].innerHTML= "100"; } </script> Glr tenho esse codigo, eu queria alterar o conteudo que tem como classe "fraction", porem ele nao da resposta, alguem tem alguma sujestão?
    • Por diogoglobaltec
      criei um formulário dinamico e gostaria de enviar para o arquivo rec.php, os aquivos adicionados pelo no formato file , já tentei colocar em
       x.setAttribute("enctype" , "multipart/form-data");
      também não funcionou segue o arquivo:
       
      <!DOCTYPE html>
          <html>
              <body>
              
                  
                  
                  <p>Click the button to create a FORM and an INPUT element.</p>
                  <button onclick="myFunction()">Try it</button>
                  <button onclick="enviar()">enviar</button>
          <script>
          function myFunction() {
            var x = document.createElement("FORM");
            x.setAttribute("action", "rec.php");
          x.setAttribute("method", "post");
          x.setAttribute("id", "myForm");
            document.body.appendChild(x);

            var y = document.createElement("INPUT");
            y.setAttribute("type", "file");
            y.setAttribute("name", "arquivo[]");
            document.getElementById("myForm").appendChild(y);
      }
           function enviar(){
              document.forms[0].submit(); 
          
          }
          </script>

              </body>
      </html>
       
      consigo pegar no arquivo rec.php o valor de $_POST , mas de $_FILES não consigo pegar como um array, o que está dando errado ? segue o  script PHP 
       
      Arquivo rec.php
      <?php
      foreach($_POST['arquivo'] as $value) {
              echo $value."<br />";
      }
      foreach($_FILES['arquivo'] as $value) {
                     echo $value['arquivo']['name']."<br />";
      }
       
       
       
       
    • Por ment0r
      Boa tarde amigos, tudo bem? Mais uma vez venho pedir o auxilio de vocês. (Talvez da primeira vez eu tenha criado esse tópico no lugar errado)
       
      Bom, estou desenvolvendo um sistema intranet pra uma empresa (php + firebird) e nele haverá uma página de cadastro de pedido; nela, o usuário digita a data da compra, a data de vencimento e vai listando os produtos - bem simples.
       
      Minha dúvida é a seguinte: como eu faço pra pra inserir vários produtos na mesma página e depois cadastrar tudo de uma vez? Peguei como exemplo uma tela do sistema de um amigo (não pode ser copiado, pois foi desenvolvido em Delphi).
       

       
      O usuário escolhe um produto e insere na lista, escolhe outro e insere na lista e assim por diante. No final ele cadastra todos. Minha dúvida não é nos procedimentos de cadastros (funções de banco e etc) é em como fazer a aparecer essa lista de produtos.
       
      Será que é com Jquey, Javascript... enfim... me deêm uma luz rsrs
       
      Muito obrigado desde já.
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.