Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

ewise

Onkeypress e onkeydown

Recommended Posts

http://forum.imasters.com.br/public/style_emoticons/default/joia.gif

 

Veja neste site http://cross-browser.com/x/examples/key_events.php que o código ascii é diferente no onkeypress e onkeydown para algumas teclas. Isso é bom! Daí dá pra desabilitar as teclas de ponto final pq usando a função keyCode no onkeypress é 46 e o delete tb, e no onkeydown é 190 somente o ponto final.

 

Mas, como fazer para desabilitar? Pois, a função onkeydown executa depois que resultado aparece no campo.

 

Obrigado!

Compartilhar este post


Link para o post
Compartilhar em outros sites

o onkeydown é excutado antes de colocar o valor no campo... o onkeyup q é executado depois, e o onkeypress é entre os dois...

<{POST_SNAPBACK}>

Pois é, e como se faz para bloquear a tecla enter e barra de espaço usando o onkeydwon? Ah, e que funcione no Firefox, no IE nem me importo se funcione ou não...

 

 

http://forum.imasters.com.br/public/style_emoticons/default/joia.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

verifica com o event.keyCode se é o enter(13) ou barra de espaço(não tô lembrado do número) e retorna false caso seja alguma dessas... tenta fazer, qualquer coisa posta ae, que eu te dou uma mão...Abraço

Compartilhar este post


Link para o post
Compartilhar em outros sites

verifica com o event.keyCode se é o enter(13) ou barra de espaço(não tô lembrado do número) e retorna false caso seja alguma dessas... tenta fazer, qualquer coisa posta ae, que eu te dou uma mão...

 

Abraço

<{POST_SNAPBACK}>

A função keyCode é só para o IE...como disse acima, não me importo se funcionar no IE ou não...gostaria que funcionasse no Firefox, e a função para capturar a tecla digitada é 'which'.

 

Veja no código abaixo, no principio era pra bloquear a tecla enter mas não funciona no Firefox.

 

Obs.: Tem que ser o evento onkeydown e o código nesta estrutura.

 

<script>

document.onkeydown=function(e){

var e = e || event;

var k = e.keyCode || e.which;

if (k==13) { return false }

}

</script>

 

<form id="form1">

Nome<input type="text" id="txtNome" name="txtNome"><br>

Valor<input type="text" id="txtValor" name="txtValor" ><br>

<input type="submit" id="Submit" name="Submit" value="Submit">

</form>

Compartilhar este post


Link para o post
Compartilhar em outros sites

A função keyCode é só para o IE
A propriedade keyCode não é somente para o IE, funciona no mozilla e netscape se não me engano apartir da versão 5, pois tenho o firefox, mozilla e NN e todos funcionam esta propriedade.

se você colocar no onkeydown do formulário essa verificação funcionará, pois você está setando o onkeydown da página e não do formulário, e o evento de tecla ocorre primeiro no formulário e depois no documento(se você estiver focado em algum campo do formulário).

Tenta verificar isso, tenho certeza q se você conseguir fazer com apenas algumas dicas minhas, você nunca mais vai esquecer, e é esse o intuito aqui, aprender...

 

Abraço

Compartilhar este post


Link para o post
Compartilhar em outros sites

A função keyCode é só para o IE
A propriedade keyCode não é somente para o IE, funciona no mozilla e netscape se não me engano apartir da versão 5, pois tenho o firefox, mozilla e NN e todos funcionam esta propriedade.

se você colocar no onkeydown do formulário essa verificação funcionará, pois você está setando o onkeydown da página e não do formulário, e o evento de tecla ocorre primeiro no formulário e depois no documento(se você estiver focado em algum campo do formulário).

Tenta verificar isso, tenho certeza q se você conseguir fazer com apenas algumas dicas minhas, você nunca mais vai esquecer, e é esse o intuito aqui, aprender...

 

Abraço

<{POST_SNAPBACK}>

você diz que tem que ser alguma coisa assim:

 

forms[0].onkeydown=function(e){

...

}

 

mas tem como pegar eventos direto do formulario? Sem usar o document?

Compartilhar este post


Link para o post
Compartilhar em outros sites

não, o que quero dizer é para você criar a função normal, sem atribuir ao document.onkeydown e atribuir no onkeydown do formulário. Ex.:

<form name="form" onKeyDown="[função]">
e ae se você tb quiser verificar alguma coisa fora do formulário seta o onkeydown do documento no onload...

 

Abraço

Compartilhar este post


Link para o post
Compartilhar em outros sites

não, o que quero dizer é para você criar a função normal, sem atribuir ao document.onkeydown e atribuir no onkeydown do formulário. Ex.:

<form name="form" onKeyDown="[função]">
e ae se você tb quiser verificar alguma coisa fora do formulário seta o onkeydown do documento no onload...

 

Abraço

<{POST_SNAPBACK}>

Continua o mesmo problema... no firefox tá mostrando primeiro a tecla digitada no campo ai depois que executa a função...dai não tem como bloquear o enter.

 

<script>

function f(e){

var e = e || event;

var k = e.keyCode || e.which;

if (k==13) { return false }

}

</script>

 

<form id="form1" onkeydown="java script: f(event)">

Nome<input type="text" id="txtNome" name="txtNome"><br>

Valor<input type="text" id="txtValor" name="txtValor" ><br>

<input type="submit" id="Submit" name="Submit" value="Submit">

</form>

Compartilhar este post


Link para o post
Compartilhar em outros sites

<form id="form1" onkeypress="return f(event);">

utiliza assim o form... com o onkeypress só q não sei se funciona no IE...

 

Abraço

Compartilhar este post


Link para o post
Compartilhar em outros sites

<form id="form1" onkeypress="return f(event);">
utiliza assim o form... com o onkeypress só q não sei se funciona no IE...

 

Abraço

<{POST_SNAPBACK}>

Sim com onkeypress funciona, mas só que eu gostaria que fosse com onkeydown, pois tem mais opções para manipulação das teclas.... :)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Poisé pelo q vi o onkeydown não funciona da maneira esperada no ff, você vai ter q testar isso no onkeypress e o q precisar testar no onkeydown verifica igual...

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

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