Ir para conteúdo
Charlie04

Teste e Envio de formulario

Recommended Posts

Tenho um formulário

 

           <form role="form" name="senha" class="ls-login-form" action="#">

            <fieldset>

 

              <label class="ls-label col-md-16">

                <b class="ls-label-text">CPF:</b>

                <input type="text" name="cpf" id="cpf" class="ls-mask-cpf" placeholder="000.000.000-00" required>

                <span id="errocpf" class="ls-sm-space"></span>

              </label>

 

              <label class="ls-label col-md-16">

                <b class="ls-label-text">E-mail:</b>

                <input type="text" name="email" placeholder="Digite seu email" maxlength="60" size="65" required>

 

              </label>

 

              <br>

 

              <input onclick="validacaoEmail(senha.email,senha.cpf)" id="botao" type="button" value="Redefinir"

                class="ls-btn-primary ls-btn-block ls-btn-lg">

  

--- e o JS ----

 

function validacaoEmail(field, field2) {

    usuario = field.value.substring(0, field.value.indexOf("@"));

    dominio = field.value.substring(field.value.indexOf("@") + 1, field.value.length);

    var cpf = field2.value;

 

    if ((usuario.length >= 1) &&

      (dominio.length >= 3) &&

      (usuario.search("@") == -1) &&

      (dominio.search("@") == -1) &&

      (usuario.search(" ") == -1) &&

      (dominio.search(" ") == -1) &&

      (dominio.search(".") != -1) &&

      (dominio.indexOf(".") >= 1) &&

      (dominio.lastIndexOf(".") < dominio.length - 1)) {

 

      if (cpf.length < 11) {

        document.getElementById("alerta-email").innerHTML = "<strong>Vish!</strong> CPF inválido.";

       

      }

    } else {

      if (cpf.length < 11) {

        document.getElementById("alerta-email").innerHTML = "<strong>Vish!</strong> E-mail e CPF inválidos";

       

      } else {

        document.getElementById("alerta-email").innerHTML = "<strong>Vish!</strong> E-mail inválido. Os endereços de e-mail devem seguir o padrão xx@xx.xx. ";

       

      }

    }

  }

 

  $(document).ready(function () {

      var $seuCampoCpf = $("#cpf");

      $seuCampoCpf.mask('000.000.000-00', {reverse: true});

  });

 

Quero testar com onclick e depois enviar para o PHP adicionar no banco.
Mas ele não chama a pagina.

 

Com TYPE = Button ele funciona o testa da máscara e não redireciona.

Com type = submit ele não funciona a mascara e redireciona.

Provavelmente é algo bem simples , mas estou com uma bela duvida de como resolver.

 

att

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

@Charlie04 O problema é bem simples. Quando você utiliza um input ou um button com o type submit o formulário faz uma Request para o link contido no atributo action antes dele chamar a função, ele carrega outra página e assim ele perde a chamada da função.

 

Com o type button ele não faz essa Request do formulário, assim ele não envia o formulário e executa a função.

 

Para esse caso você poderia trabalhar no evento submit do formulário e não no evento click do input.

 

Coloque o type do input para submit e remova o evento onclick dele.

 <input id="botao" type="submit" value="Redefinir" class="ls-btn-primary ls-btn-block ls-btn-lg">

 

Depois você adiciona uma chamada de função no evento submit no formulário.

 

 <form onsubmit="validacaoEmail(senha.email, senha.cpf)" role="form" name="senha" class="ls-login-form" action="/">

e na sua função de validação adicione um retorno.

 

return true;

Retorne true(Verdadeiro) caso os dados passem com sucesso pela validação ou retorne false(falso) caso não.

return false;

 

Obs..:

 

Lembrando que nenhuma validação no Front-End garante uma integridade de dados e nunca deve ser usada como garantia.

 

Com o HTML 5 você pode usar o input type="email" para especificar o tipo de valor que você quer recebe nesse input e junto dele o atributo required, assim bloqueando o formulário de fazer a Request até que o usuário cumpra com as requisições do input type.

 

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 ILR master
      Fala galera, tudo bem?
       
      Tenho o seguinte codigo:
       
       class Data {
      public static function ExibirTempoDecorrido($date)
      {
          if(empty($date))
          {
              return "Informe a data";
          }
          $periodos = array("segundo", "minuto", "hora", "dia", "semana", "mês", "ano", "década");
          $duracao = array("60","60","24","7","4.35","12","10");
          $agora = time();
          $unix_data = strtotime($date);
          // check validity of date
          if(empty($unix_data))
          {  
              return "Bad date";
          }
          // is it future date or past date
          if($agora > $unix_data) 
          {  
              $diferenca     = $agora - $unix_data;
              $tempo         = "atrás";
          } 
          else 
          {
              $diferenca     = $unix_data - $agora;
              $tempo         = "agora";
          }
          for($j = 0; $diferenca >= $duracao[$j] && $j < count($duracao)-1; $j++) 
          {
              $diferenca /= $duracao[$j];
          }
          $diferenca = round($diferenca);
          if($diferenca != 1) 
          {
              $periodos[$j].= "s";
          }
          return "$diferenca $periodos[$j] {$tempo}";
      }
      }
       
      Funciona redondinho se o valor retornado for de algumas horas, mas...
      Quando passa de dois meses, ele retorna a palavra mess. Deve ser por conta dessa linha
      if($diferenca != 1) 
          {
              $periodos[$j].= "s";
          }
       
      Quero que modre:
       
      2 meses atrás
      e não
      2 mess atrás.
       
      Espero que tenham entendido.
       
      Valeu
    • Por Carlos Web Soluções Web
      Olá...
      Estou tentando fazer o seguinte !!
      Listando dados em tabela !!
      Gostaria que....se na listagem houver 4 linhas...indepedente de seu número de ID, faça a listagem em ID ser em ordem 1 2 3 4 !!
      Exemplo...se tiver uma listagem de dados que está em ID 1 3 3...faça ficar 1 2 3 !!

       
      echo "<table class='tabela_dados' border='1'> <tr> <td>ID</td> <td>Nome Empresa</td> <td>Responsável</td> <td>Telefone 1</td> <td>Telefone 2</td> <td>E-mail 1</td> <td>E-mail 2</td> <td>Endereço</td> <td>CEP</td> <td>Bairro</td> <td>AÇÃO 1</td> <td>AÇÃO 2</td> </tr> "; $sql = "SELECT ID FROM usuarios_dados WHERE Usuario='$usuario'"; $result = $conn->query($sql); $num_rows = $result->num_rows; $Novo_ID = 1; for ($i = 0; $i < $num_rows; $i++) { $registro = $result -> fetch_row(); $sql2 = "UPDATE usuarios_dados SET ID='$Novo_ID' WHERE ID='$Novo_ID'"; $result2 = $conn->query($sql2); $Novo_ID++; } $sql = "SELECT * FROM usuarios_dados"; $result = $conn->query($sql); if ($result->num_rows > 0) { // output data of each row while($row = $result->fetch_assoc()) { echo "<tr> <td>$row[ID]</td> <td>$row[Nome_Empresa]</td> <td>$row[Responsavel]</td> <td>$row[Telefone_1]</td> <td>$row[Telefone_2]</td> <td>$row[Email_1]</td> <td>$row[Email_2]</td> <td>$row[Endereço]</td> <td>$row[CEP]</td> <td>$row[Bairro]</td> <td> <form method='post' action='Editar_Dados.php'> <input type='hidden' name='usuario' value='$usuario'> <input type='hidden' name='senha' value='$senha'> <input type='hidden' name='ID' value='$row[ID]'> <input type='submit' style='padding: 10px;' value='EDITAR'> </form> </td> <td> <form method='post' action='Deletar_Dados.php'> <input type='hidden' name='usuario' value='$usuario'> <input type='hidden' name='senha' value='$senha'> <input type='hidden' name='ID' value='$row[ID]'> <input type='submit' style='padding: 10px;' value='DELETAR'> </form> </td> </tr> "; } } else { echo "0 results"; } $conn->close();  
    • Por ILR master
      Boa tarde pessoal, tudo bem ?
       
      Eu uso o tinymce para cadastro de textos no meu siite, porém, quero fazer um sistema para que os colunistas possam fazer o próprio post.
      O problema do tinymce, é que ele mantém a formatação do texto copiado, como tamanho de fonts, negritos, etc... Quero que o usuário cole o texto e a própria textarea limpe a formatação para que ele formate como quiser.
       
      A pergunta é:
       
      O tinymce tem uma opção para desabilitar a formatação quando um texto é colocado?
      Tem alguma função via java ou php para retirar a formatação assim que o texto é colado?
      Ou é melhor usar um outro editor?
       
      Agradeço deste já.
    • 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>  
×

Informação importante

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