Série da semana: Primeiros passos no React

Veja mais

Chamar/Invocar tecla ENTER via código jQuery

13/12/2016

13

Ola pessoal,

Preciso de um codigo em JavaScript ou jQuery que invoque o pressionamento da tecla ENTER dentro de um input.

Algo como se fosse assim: $("target").key("#13");

É que o evento esta dentro do input na função keypress, mas é um componente de terceiro, por isso que não consigo chamar a função por fora. Minha ideia então foi forçar essa chamada simulando a tecla ENTER do teclado.

Obrigado!
Responder

Post mais votado

13/12/2016

Tente esse:

$(document).keypress(function(e) {
if (e.which == 13) {
//Logica aqui
}
});
Responder

Mais Posts

13/12/2016

Wilson Neto

Com esse código acima eu uso um trigger num botão, fica algo assim:

$(document).keypress(function(e) {
        if (e.which == 13) {
             $('button').trigger('click'); 
        }
    });



Talvez consiga implementar algo nesse estilo chamando o evento do seu input.
Responder

14/12/2016

Fernando Alves

Então... na verdade, isso seria útil para eu certificar se o ENTER foi pressionado correto ?

Mas eu preciso simular a batida na tecla do ENTER, via comando, pois quando a janela se abrir, o foco ja estara no input, então só preciso de um comando para listar os dados através da chamada do ENTER via código.

Como o componente é de terceiro, nao consegui localizar a função que faria a listagem desses dados, por isso optei por este procedimento.
Responder

14/12/2016

Wilson Neto

Fala Fernando, beleza?
Então esse bloco de código ele certifica se o enter foi pressionado e engatilha o um botão, a grosso modo é um click no botão usando o enter.

$(document).keypress(function(e) {
        if (e.which == 13) {
             $('button').trigger('click'); 
        }
    });

Nesse caso não importa aonde esteja o foco, eu estou esperando esse evento do documento, logo quando eu der um Hit no enter ele vai disparar um trigger no botão. Postei esse exemplo pois achei que seria útil nesse sentido, você identificar o evento, a "tecla" e engatilhar no componente que você deseja.

:)
Responder

15/12/2016

Fernando Alves

Olá Wilson td bem?

Primeiramente agradeço a todos pelo esforço em me ajudar,

Wilson, o problema é que esta função é executada depois que eu pressionar ENTER manualmente no teclado. Mas o que eu estou precisando, é que através de um comando, eu possa dar o ENTER sem usar o teclado.

Por exemplo;

Imagine um INPUT na sua tela, e dentro da função dele do keypress, esta um alert('Teste'),
Agora imagine que eu quero chamar o alert('Teste') que esta dentro do keypress do input,
Para isso eu sei que teria que pressionar o ENTER com o foco no INPUT, mas o usuário não pode pressionar o ENTER, pois esse evento deve ser disparado automaticamente ao abrir o formulário.

Então o que eu preciso, é executar uma função que esta dentro do KEYPRESS do meu INPUT sem interversão do usuário.

Pela lógica, eu sei que seria mais fácil executar e chamar a condição que esta dentro do KEYPRESS, mas como expliquei anteriormente, é um componente de terceiro, e não consegui localizar nas complexas linhas de código o evento que esta dentro do KEYPRESS do INPUT.

Vlw.
Responder

16/12/2016

Wilson Neto

Olá Wilson td bem?

Primeiramente agradeço a todos pelo esforço em me ajudar,

Wilson, o problema é que esta função é executada depois que eu pressionar ENTER manualmente no teclado. Mas o que eu estou precisando, é que através de um comando, eu possa dar o ENTER sem usar o teclado.

Por exemplo;

Imagine um INPUT na sua tela, e dentro da função dele do keypress, esta um alert('Teste'),
Agora imagine que eu quero chamar o alert('Teste') que esta dentro do keypress do input,
Para isso eu sei que teria que pressionar o ENTER com o foco no INPUT, mas o usuário não pode pressionar o ENTER, pois esse evento deve ser disparado automaticamente ao abrir o formulário.

Então o que eu preciso, é executar uma função que esta dentro do KEYPRESS do meu INPUT sem interversão do usuário.

Pela lógica, eu sei que seria mais fácil executar e chamar a condição que esta dentro do KEYPRESS, mas como expliquei anteriormente, é um componente de terceiro, e não consegui localizar nas complexas linhas de código o evento que esta dentro do KEYPRESS do INPUT.

Vlw.


Ah sim, agora compreendi.
Eu fiquei curioso sobre e dei uma pesquisada para compreender. Testei o seguinte bloco de código:
(Caso ainda não tenha testado algo nesse estilo talvez possa ajudar.)

                                #input que usei para testar
                                $('input').keypress(function(e){
					console.log('Evento');
				});		

                                #Carregando o evento na variavel
				var e = $.Event( "keypress", { which: 13 } );

                                #Disparando o evento keypress/enter
				$('input').trigger(e);


Basicamente carrega o evento para a variável e depois dispara o evento com o trigger.
Responder

20/12/2016

Fernando Alves

Ola Wilson,

Desculpe pela demora em responder,

Funcionou perfeitamente!

Muito obrigado mesmo...

Boas festas para todos nós!
Responder

20/12/2016

Wilson Neto

Show! :)
Obrigado!
Responder
Tenho que carregar um php quando aciono um tecla de atalho.
meu jquery está assim:
    <script>
    $(function(){
    	$("body").keydown(function(e){
    		if(e.keyCode == 83) {
			//letra S
	    		location.assign("/myEstac/index.php/myestac/geral/saida");
                        // mas não está carregando....
    		}
    	})	
    })
    </script>

Será que meu comando location.assign está errado?
Responder