Chamar/Invocar tecla ENTER via código jQuery

jQuery

JavaScript

13/12/2016

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!
Fernando Alves

Fernando Alves

Curtidas 0

Melhor post

Wilson Neto

Wilson Neto

16/12/2016

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.
GOSTEI 3

Mais Respostas

Wilson Neto

Wilson Neto

13/12/2016

Tente esse:

$(document).keypress(function(e) {
if (e.which == 13) {
//Logica aqui
}
});
GOSTEI 1
Wilson Neto

Wilson Neto

13/12/2016

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.
GOSTEI 0
Fernando Alves

Fernando Alves

13/12/2016

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.
GOSTEI 0
Wilson Neto

Wilson Neto

13/12/2016

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.

:)
GOSTEI 0
Fernando Alves

Fernando Alves

13/12/2016

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.
GOSTEI 0
Fernando Alves

Fernando Alves

13/12/2016

Ola Wilson,

Desculpe pela demora em responder,

Funcionou perfeitamente!

Muito obrigado mesmo...

Boas festas para todos nós!
GOSTEI 0
Wilson Neto

Wilson Neto

13/12/2016

Show! :)
Obrigado!
GOSTEI 0
Clovis Nogueira

Clovis Nogueira

13/12/2016

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?
GOSTEI 0
POSTAR