Jump to content
joao.felipe

Duvidas em JS

Recommended Posts

AMIGOS, ESTOU TENTANDO APRENDER A LINGUAGEM, O CODIGO É SIMPLES. TENHO UM CHECKBOX e QUERO Verificar se ele se encontra Marcado. ESTOU USANDO O FOR E QUERO QUE O RESULTADO SEJA EXIBIDO EM UM ALERTA DIZENDO CHECK MARCADO OU CHECK DESMARCADO. SEGUE O CÓDIGO. NAO SEI ONDE COLOCAR O ELSE.

<!DOCTYPE HTML>
<html>
<body>

<script>
<!-- ******************************************************************* -->

  function obterMarcados() 
  {
    alert( 'Estamos dentro da função obter Marcados!' ); 
    var listaMarcados = document.getElementsByName("checkbox1");

  if (checkBox1.checked == true)
  {

    for (loop = 0; loop < listaMarcados.length; loop++) 
    {   
      var item = listaMarcados[loop];
      if (item.type == "checkbox" && item.checked) 
      {
        alert(item.value);
        alert(listaMarcados.length);
      }
    }    
  } else alert("Nao existe CheckBox Marcado");
  }


<!--      else alert( 'Não existe CheckBoxMarcado!' ) ; -->
 
<!-- ******************************************************************* -->

  alert( 'Hello, world 1!' ); 
</script>
  <p>...After the script.</p>

<form>
  <input type="button" NAME="submit" value="Verificar Marcados" onclick="obterMarcados()">
  <input type="checkbox" name="checkbox1" value="Autocad"> Autocad <br>
</form>

</body>

</html>

 

Share this post


Link to post
Share on other sites

@joao.felipe Bom dia, cara tem tanto erro no seu script que você precisa resolver eles antes de saber aonde colocar o else.

 

Uma coisa estranha e erada, é como você está colocando os comentários no javascript que é totalmente diferente dos cometário em html.

 

Para você entender melhor os comentários do javascript possuem duas fomas de serem adicionadas que são, o comentário de uma unica linha e  um bloco de comentário.

 

O comentário de uma unica linha em javascript começa // e qualquer texto entre // e o final da linha será ignorado pelo JavaScript (não será executado).

 

<script>
  
// alerta("Eu sou um comentário e eu não vou ser executado");
alerta("Eu não sou um comentário e vou ser executado");
  
</script>

 

O bloco de comentário começa com /* e termina com */ e qualquer texto entre /**/ será ignorado pelo JavaScript.

<script>
  
/* 
	alerta("nós somos um bloco de comentário e eu não vou ser executado");
	alerta("nós somos um bloco de comentário e eu não vou ser executado");
    alerta("nós somos um bloco de comentário e eu não vou ser executado");
    alerta("nós somos um bloco de comentário e eu não vou ser executado");
*/
  
alerta("Eu não sou um comentário e vou ser executado");
  
</script>

 

Outro erro que eu encontrei é que você não utiliza o retorno do método getElementsByName() e tenta acessar de uma forma erada, o método getElementsByName() vai sempre retorna uma lista(array) com todos os elementos com o nome(name) especificado ou ele retorna uma lista(array) vazio, o erro está no if, você tenta acessar a propriedade checked de um variável que não existe, e essa propriedade é de um elemento do type(checkbox), serial ideal você nesse if verificar se existe algum elemento destro dessa lista, para isso basta verificar a propriedade length.

 

Essa propriedade da lista(array) vai retorna o valor de quantos elementos a dentro dela, caso não haja nenhum elemento, ela retorna o valor 0.

 

if (listaMarcados.length > 0)
{

}

 

Vou deixa um código de exemplo de como ficária o código corrigido:

<!DOCTYPE html>
<html>
<body>

<script>
  /******************************************/
  function obterMarcados() 
  {
  	var numeros = 0;
    var listaMarcados = document.getElementsByName("checkbox1");

	if (listaMarcados.length > 0)
    {
    
      for (loop = 0; loop < listaMarcados.length; loop++) 
      {   
        let item = listaMarcados[loop];
        console.log(item.checked)
        if (item.type == "checkbox" && item.checked) 
        {
          numeros++;
          alert(item.value);
          alert(listaMarcados.length);
        
        }
      } 
      if (numeros == 0)
      {
          alert("Nenhum CheckBox foi Marcado");
      }
      
    }
    else
    {
    	alert("Nao existe nenhum CheckBox com esse nome(name)");
	}  
 }
 /******************************************/
</script>
  <p>...After the script.</p>

<form>
  <input type="button" name="btn" value="Verificar Marcados" onclick="obterMarcados()">
  <input type="checkbox" name="checkbox1" value="Autocad"> Autocad <br>
</form>

</body>
</html>

 

Também vou deixar um link de um ótimo site para aprender javascript

https://www.w3schools.com/js/default.asp

 

Share this post


Link to post
Share on other sites
5 horas atrás, gabrielms disse:

Excelente amigo, era exatamente o que eu preciso. Sou de Belo Horizonte e preciso de umas aulas em JS. conhece alguém que pode me dar umas aulas particulares?

 

Share this post


Link to post
Share on other sites

@joao.felipe Pó eu não conheço nenhum professor partícula de javascript, mas eu acho que não sera necessário um professor, já que o conteúdo dá W3 é muito completo, e também existe ótimos cursos de desenvolvimento web, de diversas plataformas online, dá uma olhada nos curso da udemy!

 

E caso você tenha alguma duvida, publica aqui no fórum do imaster ou no fórum clube do hardware, que eu te ajudo.

 

 

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By FabianoSouza
      Galera...faz um tempão que busco uma maneira de estilizar uma TR, caso seu respectivo checbox seja clicado.
      Será mesmo que não tem como fazer isso apenas com CSS (sem precisar fazer em javascript)??
       
      Repito. Preciso de algo ultra simples: clicou no checkbox, aplica cor na TR em que estiver esse checkbox.
      Sei que o javascript é para essas questões de comportamento.
       Mas penso que possa existir uma maneira,  explorando o estado "checked" do input. Será que não??
       
      Estou testando variações dessa ideia... mas ainda sem sucesso :-(
      table tbody tr td:nth-child(1) input[type="checkbox"]:checked ~ table > tbody > tr { /* aplica cor...*/ { Estou usando td:nth-child(1) porque o checkbox fica na primeira TD de cada TR ;-)
       
      Obrigado!
       
    • By Jefferson andre
      boa tarde mestres,
       
      Estou com um problema aqui e nao conseguindo resolver, tenho a seguinte situacao inicial: ao entrar no cadastro de vendas os clientes pessoa fisica e juridica aparecem juntos, criei um checkbox e quando selecionado troca o parametro de filtro para apenas juririco ou apenas fisico.
       
      Eu carrego o parametro de filtro logo no inicio do programa informando o tipo_do_cadastro como sendo ambos (1 ou 0):
      $filtrarClientesParametros ="SELECT id, razao,deletado, ativo, id_empresa,tipo_do_cadastro FROM clientes WHERE deletado=0 AND id_empresa='$id_empresa' AND (tipo_do_cadastro = 0 OR tipo_do_cadastro = 1) ORDER BY ativo,razao";
       
      A tela eh montada mas nao sei como atualizar o <select> com as opções apos o check ter sido pressionado, quando pressionado a mensagem filtro ativado aparece corretamente.
       
      Segue o trecho do html:
      <div class="form-group col-md-6">    <label for="inputid_cliente">Clientes</label>     <br>     <?php                 $filtro_clientes  = $arquivo->prepare($filtrarClientesParametros);         $filtro_clientes->execute();     ?>     <input type="checkbox" class="form-check-input" id="Check_id_cliente" onclick="myFunction()">     <p id="text" style="display:none">Filtro ativado!</p>     <select autofocus class ="custom-select col-md-11" name="id_cliente" required id="id_cliente" name="id_cliente">     <?php          while ($clientes = $filtro_clientes->fetch()) {?>             <option value = "<?php echo $clientes['id'] ?>"><?php echo $clientes['razao'];?> </option>             <?php               }             ?>     </select> </div> Segue a funcao:
      <script> function myFunction() {   var checkBox = document.getElementById("Check_id_cliente");   var text = document.getElementById("text");   if (checkBox.checked == true){     text.style.display = "block";       $filtrarClientesParametros ="SELECT id, razao,deletado, ativo, id_empresa,tipo_do_cadastro FROM clientes WHERE deletado=0 AND id_empresa='$id_empresa' AND tipo_do_cadastro = 0 ORDER BY ativo,razao";   } else {      text.style.display = "none";       $filtrarClientesParametros ="SELECT id, razao,deletado, ativo, id_empresa,tipo_do_cadastro FROM clientes WHERE deletado=0 AND id_empresa='$id_empresa' AND tipo_do_cadastro = 1 ORDER BY ativo,razao";   } } </script> Obrigado pela atenção
       
    • By manogaucho
      Tudo bem!!
      Tenho essa pagina funcionando, mas queria criar um checkbox, para selecionar os itens para deletar..
      Por que tenho que deletar iten por iten, pior que isso tenho que pesquisar novamente. já pesquisei muito, mas não consigo implantar. Agradeço desde já atenção e ajuda.
      <?php include 'conexao.php'; ?> <?php //MENSAGEM DELETADO COM SUCESSO if($_GET['deletado'] == 'ok'){ echo 'Deletado com sucesso'; }else if($_GET['deletado'] == 'nok'){ echo "Erro ao deletar"; }else{} //MENSAGEM DE ATUALIZADO COM SUCESSO if($_GET['atualizado'] == "ok"){ echo "Atualizado com sucesso!"; }else if($_GET['atualizado'] == "nok"){ echo "Erro ao atualizar."; }else{} ?> <form action="index_melhores.php" method="GET"> <input name="input_valor" type="text" placeholder="Digite aqui" size="60" /> <button type="submit">Buscar</button> </form> <?php //PEGANDO VALOR DO CAMPO BUSCA $valor = utf8_decode($_GET['input_valor']); //SELECIONAR $selecao = "SELECT * FROM produtos_vendedores_lj04 WHERE descricao_completa LIKE '%".$valor."%' OR preço LIKE '%".$valor."%' OR recadonacompra LIKE '%".$valor."%' OR fornecedor LIKE '%".$valor."%' ORDER BY descricao_completa, preço"; $linhas = mysqli_query($conexao_db, $selecao); if($linhas): foreach ($linhas as $linha): extract($linha); echo '<strong> <font color="green">Quantidade: '.utf8_encode($quantidade).'</font><br>'; echo '<strong> <font color="blue"> Produto: '.utf8_encode($descricao_completa).'</font> </strong><br>'; echo '<strong> <font color="red"> preço: '.utf8_encode($preço).'</font> </strong><br>'; echo '<strong> <font color="orange">Recado do Vendedor: '.utf8_encode($recadonacompra).'</font><br>'; echo '<strong> <font color="red">Nome do Vendedor: '.utf8_encode($nome).'</font> </strong><br>'; echo '<strong> <font color="black">Fornecedor: '.utf8_encode($fornecedor).'</font> </strong><br><br>'; echo "<a href='deletar_melhores.php?&id=".$id."'><img src='deletar.png' width='25' height='25' /></a><br><br>"; echo '<img src="linha.png" width="300" height="1" /><br><br>'; endforeach; else: echo 'Erro ao buscar: '.mysqli_erro($conexao_db); endif; ?> deletar_melhores.php
       
      <?php include 'conexao.php'; $id = $_GET['id']; //DELETAR $queryDeletarArq = "SELECT * FROM produtos_vendedores_lj04 WHERE id='".$id."'"; $deletarArq = mysqli_query($conexao_db, $queryDeletarArq); if($deletarArq): foreach ($deletarArq as $del): extract($del); $foto_db = $foto; endforeach; $queryDeletar = "DELETE FROM produtos_vendedores_lj04 WHERE id='".$id."'"; $deletar = mysqli_query($conexao_db, $queryDeletar); mysqli_close($conexao_db); header("location: index_melhores.php?deletado=ok"); else: mysqli_close($conexao_db); header("location: index_melhores.php?deletado=nok"); endif; ?>  
    • By Dinho Nunes LC
      Como posso adicionar uma terceira opção a essa td?
       
      Funciona assim.
       
      <td align="center"> <?php if ($usuario['dia'] - $usuario['uso'] <= -1) {echo "Expirado";} else {echo "Em ", $usuario['dia'] - $usuario['uso'], " Dias";} ?> </td>
       
      Resultado atual.
       
      if ($usuario['dia'] - $usuario['uso'] <= -1) {echo "Expirado";}  ~ Exibe Expirado / Está Ok
      = 0 Exibindo "Em 0 Dias"
      else {echo "Em ", $usuario['dia'] - $usuario['uso'], " Dias";}  ~ Exibe a subtração dos dias. / Está Ok
       
      Resultado pretendido
       
      if ($usuario['dia'] - $usuario['uso'] <= -1) {echo "Expirado";} Exibe Expirado / Está Ok
      = 0 Exibir a palavra "Hoje"
      else {echo "Em ", $usuario['dia'] - $usuario['uso'], " Dias";} Exibe a subtração dos dias. / Está Ok
    • By Yuji Tako
      Meu professor passou uma lista de exercício para a turma e no meio disso tinha uma questão
      cujo o enunciado é o seguinte:
      eu pensei nas formas de conseguir fazer esse programa e pensei nessa forma
      valor = parseInt(prompt('Valor')); valorsafe = valor; while(valor != 1){ if(valor >= 100){ cem = valor / 100; valor -= (cem * 100); }else if(valor >= 50 && valor <=100){ cinquenta = valor/50; valor -= (cinquenta * 50); }else if(valor >= 10 && valor <= 50){ dez = valor/10; valor -= (dez * 10); }else if(valor >= 5 && valor <=10){ cinco = valor/5; valor -= (cinco * 5); }else if(valor < 5){ um = valor; valor = 1; } } document.write( valorsafe.toFixed(0) + '<br>' + 'cem: ' + cem.toFixed(0) + '<br>' + 'cinquenta: ' + cinquenta.toFixed(0) + '<br>' + 'dez: ' + dez.toFixed(0) + '<br>' + 'cinco: ' + cinco.toFixed(0) + '<br>' + 'um: ' + um.toFixed(0) + '<br>' ); so que ao rodar ele no mozila eu encontro o seguinte erro

      a linha 34 no caso é dentro do "document.write()".
      eu imagino que o navegador nao esta nem executando o meu "while" e por isso nao consegue atribuir um valor em "cinquenta", e por esse motivo buga.
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.