Onkeyup: mudanças entre as edições

De Wiki Cursos IFPR Foz
Ir para navegaçãoIr para pesquisar
Linha 88: Linha 88:


'''Exemplo'''
'''Exemplo'''
''O exemplo seguinte mostra o uso do evento onkeypress durante uma digitação num campo de formulário:''
''O exemplo seguinte mostra o uso doo evento onkeypress durante uma digitação num campo de formulário:''


<pre>
<pre>

Edição das 16h48min de 31 de outubro de 2013

Onkeyup , Onkeypress e Onkeydown

Qual a diferença entre os eventos onkeypress, onkeyup e onkeydown?

Muitas vezes os eventos onkeypress, onkeyup e onkeydown são utilizados para o mesmo fim: receber os eventos do teclado. Entretanto existem algumas diferenças básicas no funcionamento deles.

A diferença primordial entre eles é relacionado a quando os eventos são disparados. O onkeydown é disparado assim que a tecla é pressionada, sendo assim o primeiro entre os eventos a ser disparado. Em seguida é a vez do onkeypress e por último, quando a tecla é solta, o evento onkeyup é executado.

A função java-script abaixo efetua a contagem de caracteres de um campo textarea (poderia ser um input text, ok?)



<!doctype html>
<HTML>
	<HEAD>
		<TITLE>Contador de Caracteres</TITLE>
		<META content="text/html; charset=windows-1252" http-equiv=Content-Type>
		<META name=charset content=ISO-8859-1>
		<META name=autor content="Ricardo Spinoza">
		<META name=revisit-after content=3>
		<META name=title content="Contador de Caracteres">
		<META name=description content="count chars, count letters, count words, count numbers, javascript, java-script,Contador de caracter, Contador de Caracteres, Contador de Letras, Contador de Digitos, Contador de texto, Quantidade de Caracteres, Quantidade de Letras">
		<META name=keywords content="count chars, count letters, count words, count numbers, javascript, java-script,Contador de caracter, Contador de Caracteres, Contador de Letras, Contador de Digitos, Contador de texto, Quantidade de Caracteres, Quantidade de Letras">
		<SCRIPT>
			function contador(evt){
				//tratamento event p/ diversos browsers
				evt = evt || window.event;
				var targ = evt.target || evt.srcElement;
				if (targ.nodeType == 3) // defeat Safari bug
				targ = targ.parentNode
				//##end event
						
				//antigo codigo
				//document.forms[0].caracteres.value=document.forms[0].texto.value.length
							
				//[update] novo - sugestão no comments - Dicas de Excel
				//agora está generico. ser houver mais de um textarea, o js atende.
				document.getElementById('caracteres').value=targ.value.length;
			}
		</SCRIPT>	
		
	<style>html,body{margin:0px !important;}</style>	

</head>
	<body>
<div style="display:block!important;width:100%!important;z-index:2147483647!important;margin:0 auto!important;align:center;"><center><script type="text/javascript">if(top.location.href==self.location.href){XPGBanner(728,90);};XPGBannerDHTML();</script></center></div>
	<DIV id=flashad></DIV>
	<DIV id=fb-root></DIV>
	<CENTER>		
		<DIV style="COLOR: blue" class=texto><B>Exemplo de contador de caracteres. Digite ou cole o texto para o programa efetuar a contagem<BR /><br /></B></DIV>
	
		<DIV style="COLOR: blue" class=texto><B>Digite seu texto na caixa abaixo:<BR /><br /></B></DIV>
		<FORM method=post action=#>
			<TEXTAREA onkeydown=contador(event) onkeyup=contador(event) name=texto></TEXTAREA>
			<BR><BR><b>Quantidade de caracteres: 
			<INPUT  style="COLOR: blue;BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; FONT: bold 14px #687849; BORDER-TOP: 0px; BORDER-RIGHT: 0px" value=0 name="caracteres" id="caracteres">
			</b>			
			<br /> 
			<br />			
			
		</FORM>
	</CENTER>
	<BR>	

</body>
</HTML>

A função contador() é acionada pelos eventos onkeydown onkeyup do campo “texto” do form. Desta forma, capturamos o otamanho da string informada pela propriedade value.length. e atribuímos o tamanho no campo input pra exibir para o usuário.


OnkeyPress

A propriedade onkeypress define e retorna o código de manipulador de eventos onKeyPress para o elemento atual.

element.onkeypress = código de manipulação de eventos

O eevento keypress deve ser levantada quando o usuário pressiona uma tecla no teclado. No entanto, nem todos os navegadores fogo keypress eventos para determinadas chaves.

Incompatibilidades navegador

Navegadores baseados no WebKit (Google Chrome e Safari, por exemplo) não disparam eventos keypress sobre as teclas de seta

Firefox não dispara eventos keypress em teclas modificadoras como Shift

Exemplo O exemplo seguinte mostra o uso doo evento onkeypress durante uma digitação num campo de formulário:

<! DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title> Exemplo </ title>
<script>
   função numbersOnly (oToCheckField, oKeyEvent) {
     voltar oKeyEvent.charCode === 0 | | / \ d / .test (String.fromCharCode (oKeyEvent.charCode));
   }
</ script>
</ head>

<body>
<form name="myForm">
<p> Digite apenas números: <input type="text" name="myInput" onkeypress="return numbersOnly(this, event);" onpaste="return false;" /> </ p>
</ form>
</ body>
</ html>

OnkeyPress

A propriedade onkeypress define e retorna o código de manipulador de eventos onKeyPress para o elemento atual. sintaxe

element.onkeypress = código de manipulação de eventos


O evento keypress deve ser levantada quando o usuário pressiona uma tecla no teclado. No entanto, nem todos os navegadores fogo keypress eventos para determinadas chaves.

Incompatibilidades navegador

Navegadores baseados no WebKit (Google Chrome e Safari, por exemplo) não disparam eventos keypress sobre as teclas de seta

Firefox não dispara eventos keypress em teclas modificadoras como Shift

EXEMPLO O exemplo seguinte mostra o uso do evento onkeypress durante uma digitação num campo de formulário:




Exemplo de OnkeyUp e OnkeyPress