Ir para conteúdo
Fórum Script Brasil
  • 0

Jquery - Focus


rafaeldorazio

Pergunta

Ancora($(this).attr("href").replace("div", ""));


function Ancora(elementClicked, idCampo){    

    $(idCampo).focus();
    alert(idCampo);
    
}

coloquei um alert ai dentro e verifiquei que há 2 retornos, a sequencia dos retornos está assim :

#Senha

#Usuario

Sendo que sempre o ultimo retorno está sendo o #Usuario e o primeiro retorno é o que eu realmente cliquei. Neste caso o focu deveria estar no #Senha mas está no #Usuario.

Link para o comentário
Compartilhar em outros sites

8 respostass a esta questão

Posts Recomendados

  • 0

$("button").click(function(){

                $("#liUsuario").click(function(){
                   
                    Ancora($(this).attr("href"),  $(this).attr("href").replace("div", ""));
                    
                });
                $("#liSenha").click(function(){
                   
                    Ancora($(this).attr("href"),  $(this).attr("href").replace("div", ""));
                    
                });    

                }

Supondo que eu clique no id liSenha , a function Ancora ela é executada duas vezes sendo que o focu é dado como se estivece clicado no liUsuario.

Editado por rafaeldorazio
Link para o comentário
Compartilhar em outros sites

  • 0

i aew rafaeldorazio, bom não sei se entende muito bem o que você quer fazer mas ve se esse exemplo te ajuda:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
<script type="text/javascript" src="jquery-1.4.2.js"></script>
<script type="text/javascript">

    function Ancora(elementClicked, idCampo){    
    
        $( idCampo ).focus();
        
    }
    
    $( function(){
    
        $("button").click(function(){
            $("#liUsuario").unbind('click').click(function(){
              
                Ancora($(this).attr("href"),  $(this).attr("href").replace("div", ""));
                return false;
            });
            $("#liSenha").unbind('click').click(function(){
              
                Ancora($(this).attr("href"),  $(this).attr("href").replace("div", ""));
                return false;   
            });  
            return false;
        } );
    } );
    
</script>

</head>
<body>
    usuario:<input type="text" id='Usuario' /><br />
    senha  :<input type="text" id='Senha' /><br />
    <ul>
        <li><a href="#divUsuario" id='liUsuario'>foco no campo usuario</a></li>
        <li><a href="#divSenha" id='liSenha'>foco no campo senha</a></li>
    </ul>
    <button>add funcoes link click</button>
</body>
</html>

espero que ajude, abrao!

Link para o comentário
Compartilhar em outros sites

  • 0
Romerito,não sei se issointerfere nesse seu exemplo, mas no button eu fiz assim:

<button href="teste.php" ref="Salvando"></button>

Esse codigo a mais no button interfere em algo ?

você ao menos chegou a testar, pra ver se funciona?

bom pelo exemplo que dei não muda nadam, abraço!

Link para o comentário
Compartilhar em outros sites

  • 0

Romerito,achoque já sei qual é o problema, testando seu codigo aqui e pude perceber o meu erroporem não sei comofazer o certo.

dentro do click do button, eu faço as validações, aique vem o problema, dependendo da validação eu crio essas li , e se o user clicar nessa li vai direto pro campo do erro.

você saberia como eu faria isso?

Lembrando que se eu colocar os eventos click da li fora ou antes de gerar essas li dinamicamente, não vaifuncionar !

Editado por rafaeldorazio
Link para o comentário
Compartilhar em outros sites

  • 0

<div id="errorMsg">
          <ol>
              <li><a  href="#divUsuario" id="liUsuario">Digite um nome de Usuário.</a></li>
            <li><a  href="#divSenha" ref="Senha" id="liSenha">A senha deve conter de 5 até 20 caracters.</a></li>
            <li><a  href="#divVerificaSenha" id="liVerificaSenha">A Senha digitada não confera com a Verificação da Senha.</a></li>
            <li><a  href="#divEmail" id="liEmail">Email Inválido.</a></li>
            <li><a  href="#divNome" id="liNome">Nome Inválido.</a></li>
            <li><a  href="#divCPF" id="liCPF">CPF Inválido.</a></li>
            <li><a  href="#divRG" id="liRG">RG Inválido.</a></li>
            <li><a  href="#divPIS" id="liRG">PIS Inválido.</a></li>
          </ol>
      </div>


            $("#liUsuario, #liSenha, #liVerificaSenha, #liEmail, #liNome, #liCPF, #liRG, #liPIS").bind("click", Ancora);


function Ancora() {    

    var destination = $($(this).attr("href")).offset().top;
    $("html:not(:animated),body:not(:animated)").animate({ scrollTop: destination}, 2000 );
    $($(this).attr("id").replace("li", "")).focus();
    
}

Este codigo não esta funcionado o focus !

Link para o comentário
Compartilhar em outros sites

  • 0

$("#errorMsg ol li a").bind("click", Ancora);

function Ancora() {    

    var obj = $("#"+ $(this).attr("id").replace("li", "") ); 
    var destination = $($(this).attr("href")).offset().top;
    $("html:not(:animated),body:not(:animated)").animate({ scrollTop: destination}, 2000 , function(){
        obj.focus();
    } );
     
}

    <div id="errorMsg">
          <ol>
            <li><a  href="#divUsuario" id="liUsuario">Digite um nome de Usuário.</a></li>
            <li><a  href="#divSenha" id="liSenha">A senha deve conter de 5 até 20 caracters.</a></li>
            <li><a  href="#divVerificaSenha" id="liVerificaSenha">A Senha digitada não confera com a Verificação da Senha.</a></li>
            <li><a  href="#divEmail" id="liEmail">Email Inválido.</a></li>
            <li><a  href="#divNome" id="liNome">Nome Inválido.</a></li>
            <li><a  href="#divCPF" id="liCPF">CPF Inválido.</a></li>
            <li><a  href="#divRG" id="liRG">RG Inválido.</a></li>
            <li><a  href="#divPIS" id="liPIS">PIS Inválido.</a></li>
          </ol>
    </div>

Romerito obrigado por ter me ajudado, você conseguiu !

Editado por rafaeldorazio
Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...