Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

  • 0
isaborges

Habilitar ou desabilitar submit usando validação jQuery

Pergunta

<!DOCTYPE html>
<html lang="pt-br">
<head>
    <meta charset="UTF-8">
    <script src="https://code.jquery.com/jquery-3.3.1.min.js"></script>
    <title>Exercicio 02 </title>
</head>
<body>
    <form action="#">
    <h3>Cadastro</h3>
    <p>
    <label for="campotexto">Nome: </label>
    <input type="text" name="campoTexto" id="campoTexto" required>
    </p>
    <p>
    <label for="email">E-mail:</label>
    <input type="email" name="email" id="email" required>
    <p>
    <label for="telefone">Telefone: </label>
    <input type="telefone" name="telefone" id="telefone">
    </p>
    <label for="telefone">Celular: </label>
    <input type="telefone" name="telefone" id="telefone">
       </p>
    </label>

<form id="form">
     <input type='radio' name='tipopessoa' id='fisica'> CPF
     <input type='radio' name='tipopessoa' id='juridica'> CNPJ
     <div id="documentType">
         <label></label>
         <input id='' type='text' name=''>
     </div> <br><br>
</form>
    
<script>

$(function() {
    var documentType = $('#documentType');
    documentType.hide();
    function showInput(id) {
        if(id =='fisica') {
            $('#documentType label').text('CPF');
            $('#documentType input').prop('name','cpf');
            $('#documentType input').prop('id','cpf');
            documentType.show();
        }
        if(id =='juridica') {
            $('#documentType label').text('CNPJ');
            $('#documentType input').prop('name','cnpj');
            $('#documentType input').prop('id','cnpj');
            documentType.show();
        }
    }
    $(document).on('click', 'input[type=radio]', function(){
        var id = $(this).prop('id');
        showInput(id);
    });
});

</script> 

<script>    function HabiDsabi(){  if(document.getElementById('habi').checked == true)
{document.getElementById('envia').disabled = ""  }  if(document.getElementById('habi').checked == false)
{    document.getElementById('envia').disabled = "disabled"  }  }
    </script>
    <form name="form1"><input type="checkbox" name="habi" id="habi" onClick="HabiDsabi()">Concordo sem Ler
        <br>
    <input type="submit" name="envia" id="envia" value="Cadastrar" disabled>

</form>


</body>
</html>

Bom dia, Pessoal!

Estou fazendo um exercício e não estou conseguindo fazer a parte de validação. 

O meu código está assim:

 

<!DOCTYPE html>
<html lang="pt-br">
<head>
    <meta charset="UTF-8">
    <script src="https://code.jquery.com/jquery-3.3.1.min.js"></script>
    <title>Exercicio 02 </title>
</head>
<body>
    <form action="#">
    <h3>Cadastro</h3>
    <p>
    <label for="campotexto">Nome: </label>
    <input type="text" name="campoTexto" id="campoTexto" required>
    </p>
    <p>
    <label for="email">E-mail:</label>
    <input type="email" name="email" id="email" required>
    <p>
    <label for="telefone">Telefone: </label>
    <input type="telefone" name="telefone" id="telefone">
    </p>
    <label for="telefone">Celular: </label>
    <input type="telefone" name="telefone" id="telefone">
       </p>
    </label>

<form id="form">
     <input type='radio' name='tipopessoa' id='fisica'> CPF
     <input type='radio' name='tipopessoa' id='juridica'> CNPJ
     <div id="documentType">
         <label></label>
         <input id='' type='text' name=''>
     </div> <br><br>
</form>
    
<script>

$(function() {
    var documentType = $('#documentType');
    documentType.hide();
    function showInput(id) {
        if(id =='fisica') {
            $('#documentType label').text('CPF');
            $('#documentType input').prop('name','cpf');
            $('#documentType input').prop('id','cpf');
            documentType.show();
        }
        if(id =='juridica') {
            $('#documentType label').text('CNPJ');
            $('#documentType input').prop('name','cnpj');
            $('#documentType input').prop('id','cnpj');
            documentType.show();
        }
    }
    $(document).on('click', 'input[type=radio]', function(){
        var id = $(this).prop('id');
        showInput(id);
    });
});

</script> 

<script>    function HabiDsabi(){  if(document.getElementById('habi').checked == true)
{document.getElementById('envia').disabled = ""  }  if(document.getElementById('habi').checked == false)
{    document.getElementById('envia').disabled = "disabled"  }  }
    </script>
    <form name="form1"><input type="checkbox" name="habi" id="habi" onClick="HabiDsabi()">Concordo sem Ler
        <br>
    <input type="submit" name="envia" id="envia" value="Cadastrar" disabled>

</form>


</body>
</html>

 

 

Anexo está a imagem do que foi pedido no exercício. 

Ps: Estou iniciando o estudo, agradeço desde já a disponibilidade em ajudar. 

 

exe02.jpeg

Compartilhar este post


Link para o post
Compartilhar em outros sites

2 respostas a esta questão

Recommended Posts

Aí vão algumas dicas:

 

  1. Indente o seu código: Assim você consegue achar os erros mais rapidamente, caso haja.
  2. Evite usar nomes repetidos de classes/ids para elementos diferentes, se você tem dois elementos com o mesmo ID e mesma Classe como você vai diferenciar? (Estou falando do telefone/celular, no seu HTML)
  3. Faça pouco e vá avançando: Se você precisa validar vários campos faça o seguinte, crie um HTML com apenas um INPUT e uma LABEL, faça o controle dele, fazendo o dele você irá conseguir fazer o controle de todos, apenas mudando a classe, ou o ID.
     

Veja se te ajuda: https://codepen.io/andersonhese/pen/YJYgzO

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Impedir o envio do formulário é bem simples:

let form = document.querySelector('#form1');
form.addEventListener('submit', function(event){
  let input = document.querySelector("#input");//Faça todos os testes que precisa aqui
  if(input.value == '' || input.value == null){//Teste aqui se tudo é válido
    event.preventDefault();//Se não for válido o javascript vai prevenir o submit de ser completado
  }
});

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por ILR master
      Pessoal, pergunta bem simples. Abaixo tenho o seguinte código:
       
      <script>
      function alerta()
      {
        if (window.confirm("Você realmente quer sair?")) {
          window.open("sair.html");
      }
      }
      </script>
       
      Funciona perfeitamente, só que está abrindo em outra janela e quero que abra na mesma janela.
       
      Alguém pode me ajudar?
    • Por Giovanird
      Olá a todos!
      Tenho uma pagina que possui uma DIV onde coloquei uma pagina PHP.
      Uso a função setInterval para atualizar a pagina inclusa dentro da DIV.
      O problema é que ao acessar o site , a DIV só me mostra a pagina inclusa somente quando completo o primeiro minuto.
      Preciso que a pagina inclusa já inicie carregada
       
      Meu código JavaScript e a DIV com a pagina PHP
       
      <script> function atualiza(){ var url = 'direita.php'; $.get(url, function(dataReturn) { $('#direita').html(dataReturn); }); } setInterval("atualiza()",60000); </script> <div> <span id="direita"></span> </div>  
    • Por Thiago Duarte
      Oi, gostaria de arrastar imagem e ao soltar formar bloco html, meu bloco de html ficaria com nome, content-1.html, content-2.html, etc
       
      Alguem pode me ajudar?
    • Por belann
      Olá!
       
      Estou fazendo o upload de arquivos com fetch dessa forma
      fetch(url, {
              method: 'POST',
              headers: {'Content-Type': 'multipart/form-data',},
              body: formData 
          }).catch((error) => (console.log("Problemas com o Upload"), error));
       
      estou usando input type=file
      e criando uma const formData = new FormData(); 
      mas não faz e não dá nenhum erro.
      estou fazendo o upload com a url="http://localhost/dashboard/dados".
×

Informação importante

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