Jump to content
andjao

Focus atualizando a pagina

Recommended Posts

Por que quando clico ele da o focus onde falta preencher e atualiza a pagina assim esvaziando as variaveis?

Gostaria que isso não acontecesse e somente desse o focus

 

Quando ele atualiza a pagina fica com um "?" no final do url e do nome da pagina

 

<!DOCTYPE html>
<html>

<head>
    <meta charset="utf-8">
    <title></title>
    <script src="jquery.min.js"></script>
    <script>
        var alunos = [];
        $(document).ready(function() {
            $("#cadastrar").click(function() {
                cadastrar();
            });
            $("#exibir").click(function() {
                exibir();
            });

        });

        function cadastrar() {
            if ($("#nome").val() == "" || $("#nome").val() < 3) {
                alert("Preencha corretamente seu nome");
                return $("#nome").focus();
            } else if ($("#rgm").val() == "" || $("#rgm").val().length < 7) {
                alert("Preencha corretamente seu RGM");
                return $("#rgm").focus();
            } else if ($("#parcial").val() == "") {
                alert("Preencha corretamente sua nota parcial");
                return $("#parcial").focus();
            } else if ($("#exercicios").val == "") {
                alert("Preencha corretamente sua nota dos exercícios");
                return $("#exercicios").focus();
            } else if ($("#projeto").val() == "") {
                alert("Preencha corretamente sua nota do projeto");
                return $("#projeto").focus();
            } else if ($("#regimental").val() == "") {
                alert("Preencha corretamente sua nota regimental");
                return $("#regimental").focus();
            } else if (($("#nome").val() + $("#rgm").val() + $("#parcial").val() + $("#exercicios").val() + $("#projeto").val() + $("#regimental").val()) > 10) {
                alert("A soma das notas não podera ultrapassar de 10 pontos");
                return false;
            } else {
                var aluno = [$("#nome").val(), $("#rgm").val(), $("#parcial").val(), $("#exercicios").val(), $("#projeto").val(), $("#regimental").val()];
                alunos.push(aluno);
            }
        }

        function exibir() {
            alert(alunos[0][3]);
            var conteudo = "<table border='1'><tr><th>Nome</th><th>RGM</th><th>Parcial</th><th>Exercícios</th><td>Projeto</th><th>Regimental</th></tr>"
            var i;
            for (i = 0; i < alunos.length; i++) {
                conteudo += "<tr><td>" + alunos[i][0] + "</td><td>" + alunos[i][1] + "</td><td>" + alunos[i][2] + "</td><td>" + alunos[i][3] + "</td><td>" + alunos[i][4] + "</td><td>" + alunos[i][4] + "</td></tr>";
            }
            conteudo += "</table>"
            $("#resultado").html = conteudo;
        }

    </script>
</head>


<body>
    <form>
        Nome: <input type="text" id="nome">
        <br>RGM: <input type="text" id="rgm">
        <br> Nota Parcial: <input type="text" id="parcial">
        <br> Nota Exercícios: <input type="text" id="exercicios">
        <br> Nota Projeto: <input type="text" id="projeto">
        <br> Nota Regimental: <input type="text" id="regimental">
        <br><button id="cadastrar">Cadastrar</button> <button id="exibir">Exibir Dados</button>

    </form>
    <div id="resultado"></div>
</body>

</html>

Share this post


Link to post
Share on other sites

Tenta tirar esses returns...

function cadastrar() {
            if ($("#nome").val() == "" || $("#nome").val() < 3) {
                alert("Preencha corretamente seu nome");
                $("#nome").focus();
            } else if ($("#rgm").val() == "" || $("#rgm").val().length < 7) {
                alert("Preencha corretamente seu RGM");
                $("#rgm").focus();
            } else if ($("#parcial").val() == "") {
                alert("Preencha corretamente sua nota parcial");
                $("#parcial").focus();
            } else if ($("#exercicios").val == "") {
                alert("Preencha corretamente sua nota dos exercícios");
                $("#exercicios").focus();
            } else if ($("#projeto").val() == "") {
                alert("Preencha corretamente sua nota do projeto");
                $("#projeto").focus();
            } else if ($("#regimental").val() == "") {
                alert("Preencha corretamente sua nota regimental");
                $("#regimental").focus();
            } else if (($("#nome").val() + $("#rgm").val() + $("#parcial").val() + $("#exercicios").val() + $("#projeto").val() + $("#regimental").val()) > 10) {
                alert("A soma das notas não podera ultrapassar de 10 pontos");
                return false;
            } else {
                var aluno = [$("#nome").val(), $("#rgm").val(), $("#parcial").val(), $("#exercicios").val(), $("#projeto").val(), $("#regimental").val()];
                alunos.push(aluno);
            }
        }

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 andrelimaverde
      Pessoal preciso de uma ajuda, desde já agradeço à todos.
      "Site teste, estudos..."
      Tenho um formulário com 3 etapas, ele está trabalhando em php normalmente e salvando os dados preenchidos em .txt (para testes apenas).
      Vamos lá, nas 3 etapas o form está com action="1.php" (2.php,  3.php) e method="post". [Não vou colocar muito código para simplificar, pois é um formulário básico fácil de entender]
      Exemplo:  Pagina 1 - envia para action '1.php'
      Nome: 
      Telefone:
      <input type="submit" value="Continuar">
      (
       O arquivo 1.php armazena os dados e redireciona => header( 'Location:Pagina2.php' ) ;   
       Assim como os outros php's
      )
      Pagina 2 - action 2.php armazena os dados e redireciona => header( 'Location:Pagina3.php' ) ; 
      Cidade:
      Endereço:
      <input type="submit" value="Continuar">
       
      A questão está na 3ª página
      Página 3 -
      Email:
      (Preciso que após preencher o campo da página 3 no caso "Email:",  ao clicar no botão, neste caso não sei se seria um submit ou button. O formulário não redirecionar para pagina 4, ao clicar ele enviar e salvar normalmente, mas aparecer um novo input na mesma pagina por Exemplo:"Twitter:"  ) 
      No caso preciso que ele não redirecione , gostaria de colocar um gif de carregando por 15 segundos por exemplo como se estivesse processando as informações... e em seguida ele apresentar o novo input do "Twitter:" , onde ai sim enviaria normalmente...
    • By SrTunes
      Boa tarde amigos, sei que há vario tópicos parecidos com esse, com praticamente a mesma dúvida, mas com diferentes resoluções. Mas o motivo de eu ter aberto um tópico novo foi por causa tenho duvida no meu código que não encontrei resposta nos outros tópicos.
       
      De antemão informo que meu conhecimento em javascript é muito limitado, por isso peço encarecidamente a paciência e compreensão dos colegas e dede já agradeço a todos. Muito obrigado.
       
      Bem, o problema:
       
      Tenho um form php com dois campos apenas: "PN do item" e "Descrição".
      Para o primeiro campo de input (PN do Item), com a ajuda da internet, implementei um script que a medida que digito ele faz uma busca no BD e autocompleta. Até ai beleza.
      O que estou querendo agora é, aproveitando a minha estrutura, fazer com que ao escolher o item do primeiro campo de input, o segundo campo de input me retornasse do BD a descrição deste item automaticamente sem refresh da página.
      Isso é possível?
       
      Abaixo deixo meus scripts:
      <?php require_once 'config/conexao.class.php'; require_once 'config/crud.class.php'; $con = new conexao(); // instancia classe de conxao $con->connect(); // abre conexao com o banco $consulta = mysql_query("SELECT pn_item FROM descricao_de_itens"); //Busca da tabela descricao_de_itens o campo pn_item para preencher as opções no form $dados =""; if(mysql_num_rows($consulta) > 0){ while($row = mysql_fetch_assoc($consulta)){ $dados = $dados."\"".$row["pn_item"]."\","; } } $dados = substr($dados,0,-1); // retira a última virgula ?> <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <link rel="stylesheet" href="http://localhost/controle_estoque/css/jquery-ui.css"> <script src="http://localhost/controle_estoque/js/jquery-3.4.1.js"></script> <script src="http://localhost/controle_estoque/js/ui/jquery-ui.js"></script> <script> $( function(){ var availableTags = [<?php echo $dados?>]; $( "#tags" ).autocomplete({ source: availableTags }); } ); </script> <title></title> </head> <body> <form action="" method="post"><!-- formulario carrega a si mesmo com o action vazio --> <div class="ui-widget"> <label for="tags">PN do Item:</label> <input id="tags" type="text" name="nome"/> <br /> <br /> </div> <label>Descri&ccedil;&atilde;o:</label> <input type="text" name="descricao"/> <br /> <br /> <input type="submit" name="cadastrar" value="Cadastrar" /> </form> </body> </html> <?php $con->disconnect(); // fecha conexao com o banco ?>  
    • By odenilson marques
      Bom dia!
       
      Pessoal tenho um formulário com 3 campos input, nos três estou usando o plugin validate da jquery para realizar a validação,
      até aí tudo certo, porém em um desses input, estou usando o autocomplete também da jquery para carregar os dados de uma determinada tabela do BD. 
      No entanto, está ocorrendo um problema, pois quando utilizo, por exemplo a versão jquery.3.1.1.js a validação funciona, porém o autocomplete não, e quando utilizo a versão jquery.js o autocomplete funciona e a validação não. Alguém poderia me uma luz de como chegar a uma solução para esse problema? 
       
      Grato pela atenção!
       
       
       
    • By Richard.Ribeiro
      Boa tarde Pessoal e minha primeira vez aqui. e gostaria de uma ajuda.
      como posso salvar no banco o input adicionado pela função ONCLICK??
      Encontrei essa ajuda  aqui no fórum "(formulario[0][quantidade]) para que os inputs adicionados não fiquem com mesmo nome, porém ainda não conseguir salvar no banco, estou salvando apenas o principal.
      Resumindo, preciso salvar os pedidos de todos inputs e select adicionado pelo onlick.
       
       
        <div id="box" >
        <form id="teste"  method="post">
          <?php
            if(isset($_POST['acao'])){
              $tipo_material = $_POST['material'];
              $quantidade = $_POST['quantidade'];

              // salvar no banco de dados!
                  $gravar = new Painel();
                  $gravar->cadastrarItem($tipo_material,$quantidade);
                  }
        ?>
        <div class="pedido">

          <label>Selecione Material:</label>
          <select name="formulario[0] [material]" id="material">  
      --AQUI MOSTRA OS DADOS RETORNADOS POR UM CONSULTA AO BANCO COM FOREACH--
             </select>
          <input type="text" id="quantidade" name="formulario[0][quantidade]" placeholder="Digite a Quantidade" >
          <input type="submit" name="acao" value="Cadastrar!">
          </form>
      </div><!--pedido-->
        </div><!--box-->
       
       
    • By vmdev
      Bom dia!
      Eu tô com um probleminha aqui, espero que alguém consiga me ajudar.
      Eu tenho dois elementos: h1 e h2, eu fiz um script para efeito de digitação pra ambos, só que eu quero que o efeito de digitação do h2 seja iniciado somente quando o h1 for terminado, ou, depois de um tempo que eu selecionar. Tentei fazer dessa forma, mas não deu certo:
      <script>                                 function typeWrite (elemento) {                                 const textoArray = elemento.innerHTML.split('');                                 elemento.innerHTML = '';                                 textoArray.forEach((letra, i) => {                                  setTimeout(function() {                                      elemento.innerHTML += letra                                  }, 75 * i)                                                                  });                                                      }                          const titulo = document.querySelector('h1')                          typeWrite(titulo);                          </script>                          <script>                             var segundos = 4;                             setTimeout ( function typeWrite (elemento) {                             const textoArray = elemento.innerHTML.split('');                             elemento.innerHTML = '';                             textoArray.forEach((letra, i) => {                              setTimeout(function() {                                  elemento.innerHTML += letra                              }, 75 * i)                                                          });                                              }, segundos * 1000);                      const titulo2 = document.querySelector('h2')                      typeWrite(titulo2);                      </script>  
       
       Alguém pode ma falar qual é o erro? Obrigado!
×

Important Information

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