Ir para conteúdo

POWERED BY:

Arquivado

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

Rason

Capturar evento do teclado no Firefox...

Recommended Posts

galeraaaaaaaaaaaaaaaa

 

tenho o seguinte codigo e preciso colocar crossbrowser...

 

a funçao ta ateh capturando o evento, acho entao que o andar dela que nao ta muito certo..hehehe

 

function retiraAcento(obj) {  var caracteresInvalidos = 'àèìòùâêîôûäëïöüáéíóúãõçÀÈÌÒÙÂÊÎÔÛÄËÏÖÜÁÉÍÓÚÃÕÇ';  var caracteresValidos =   'aeiouaeiouaeiouaeiouaocAEIOUAEIOUAEIOUAEIOUAOC';  var acento = "´`^¨~";    if(navigator.appName == 'Netscape'){	 obj.which;	 if(acento.indexOf(obj)!= -1)  {	obj.which = 0;  }  if (caracteresInvalidos.indexOf(obj) == -1)   {	   if (caracteresValidos.indexOf(obj) != -1) {		 obj.which = 0;		 obj.value = obj.value + obj;	   }  }   else   {		   obj.which = 0;		   nova = caracteresValidos.charAt(caracteresInvalidos.indexOf(obj));		   obj.value =  obj.value + nova;  }	}else{    palavra = String.fromCharCode(event.keyCode);    if(acento.indexOf(palavra)!= -1)  {	window.event.keyCode = 0;  }  if (caracteresInvalidos.indexOf(palavra) == -1)   {	   if (caracteresValidos.indexOf(palavra) != -1) {		 window.event.keyCode = 0;		 obj.value = obj.value + palavra;	   }  }   else   {		   window.event.keyCode = 0;		   nova = caracteresValidos.charAt(caracteresInvalidos.indexOf(palavra));		   obj.value =  obj.value + nova;  } }

 

no IE funciona perfeitamente...

a funçao evita que seja digitado qualquer acento e se for digitado uma letra acentuada...ela transforma em "desacentuada" http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

 

qm puder identificar qual o problema no Firefox..AGRADEÇO!!

Obs...qm quiser...fica a vontade pra pegar a parte que funciona no IE...muito boa!!

 

:rolleyes:

Compartilhar este post


Link para o post
Compartilhar em outros sites

Testa esse script e adapta ao seu caso:

<html>	<head>		<title>Fórum</title>		 <script>			function Char(e){				try{var key = e.which		  }catch(er){};				try{var key = event.keyCode	}catch(er){};								try{var element = e.target		  }catch(er){};				try{var element = event.srcElement  }catch(er){};								if(key == 0 || key == 8) return true;								var charOK	  = 'aeiouaeiouaeiouaeiouaoncAEIOUAEIOUAEIOUAEIOUAONC';				var charNOK	 = 'àèìòùâêîôûäëïöüáéíóúãõñçÀÈÌÒÙÂÊÎÔÛÄËÏÖÜÁÉÍÓÚÃÕÑÇ';								var charRE	  = new RegExp('['+charNOK+']', 'gi');								if(charRE.test(String.fromCharCode(key)))					element.value += charOK.substr(charNOK.search(String.fromCharCode(key)),1);				   												return /[a-zA-Z0-9]/.test(String.fromCharCode(key));			}			window.onload = function(){ document.getElementById('teste').onkeypress = Char;}					</script>	</head>	<body>		<input type="text" id="teste" />	</body> </html>

Compartilhar este post


Link para o post
Compartilhar em outros sites

naaaaaaaaaadaaaaaaaaaaaaaaaaaaa de novo...

 

eu consegui capturar o evento, retorna o valor da tecla pressionada...porém...mesmo atendendo a condiçao (acento.indexOf(palavra) != -1) ele deixa passar..

ai..insere de qualquer forma o maldito acento <_<

 

to olhando aqui...qm puder ajudar...vlwww

 

 

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

Compartilhar este post


Link para o post
Compartilhar em outros sites

eu consegui capturar o evento, retorna o valor da tecla pressionada...porém...mesmo atendendo a condiçao (acento.indexOf(palavra) != -1) ele deixa passar..

Não precisa usar indexOf. A solução toda foi desenvolvida com Expressões Regulares.

Compartilhar este post


Link para o post
Compartilhar em outros sites

eaaaa amigo...desculpa a ignorancia..mas sou novato ainda no javascript

 

você podeira me dizer..como fazer esse teste usando expressoes regulares??

 

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

Compartilhar este post


Link para o post
Compartilhar em outros sites

A solução ta pronta, o script foi publicado no meu primeiro post. Copia o script e cola em um arquivo HTML vazio.Só falei para testar e ver se é isso que precisa!Sobre Regular Expression tem um link para um artigo do Thiago Prado no post anterior.

Compartilhar este post


Link para o post
Compartilhar em outros sites

A solução ta pronta, o script foi publicado no meu primeiro post. Copia o script e cola em um arquivo HTML vazio.Só falei para testar e ver se é isso que precisa!Sobre Regular Expression tem um link para um artigo do Thiago Prado no post anterior.

Urruuuuuuuuuuuuuuu...valeu vagnerrrrrrrrrrrrrrrrera exatamente isso que eu queria..vou adaptar aki..obrigadaoo!!! http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif :rolleyes:

Compartilhar este post


Link para o post
Compartilhar em outros sites

vagner meu velho...

 

tive mais um problema...

 

pelo que eu vi, a funcao eh carregada no onload..

 

o problema eh..eu jah tenho uma funçao onload =(

 

como faço para adaptar ela pra um evento OnKeyPress, Down ou Up..., no caso...a que melhor atender a minha necessidade??

 

mas uma vez..agradeço..

 

to me virando aki

 

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

Compartilhar este post


Link para o post
Compartilhar em outros sites

A função não é carregada no onLoad, ela é carregada no onKeyPress.

O onLoad da janela, serve apenas para atribuir a função ao evento do elemento input text.

 

PS: você pode ter mais de uma função por evento.

Compartilhar este post


Link para o post
Compartilhar em outros sites

por incrivel que pareça, eu nao consegui adaptar...to me perdendo em algum lugar

 

=//

 

olha soh o form..

 

<FORM method=POST id=form1 name=form1 action="atendimento02.asp?TipoPesquisa=nome" target=frame03>	<tr> 	  <td>		<b>Informe o Nome</b>	  </td>	 </tr>	<tr>	  <td width="100%" align=center>		<INPUT type="text" id=txtNome name=txtNome size="60" maxlength="50" class=texto1 onkeyup="Form_EvitaEspaco(this);">		<INPUT type="submit" id=btPesquisar onclick="btPesquisar_OnClick();" name=btPesquisar value="Pesquisa" class=texto1>		<input type=hidden id=TipoPesquisa name=TipoPesquisa>		</td> 	 </tr>	 </FORM>

onde entra a funcao ai???

 

-----------------------------------------------------------------------------------

Post Mesclado

-----------------------------------------------------------------------------------

 

eu consegui ver que a funcao esta executando...porem ela nao faz como era pra fazer..

 

como estava aqui...o exemplo funcionou certinho..mas com o meu form, nao deu certo!!

 

=(

 

vê meu form ai em cima...vê qual o problema, e como posso resolver?

 

estou chamando a funcao assim : OnKeyPress="Char(event);"

 

valeu mais uma vez...

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.