Ie 8

3 respostas
caiomacedor
Bom dia pessoal. Instalei o IE 8 no meu notebook e ao rodar um function como essa, ela não funcionou.
<html>
	<head>
		<script>
			function formatDate(e, data, separador){
				var key = (window.Event)? e.which : e.keyCode;
				//alert(key);
				var len = data.value.length;
				if(key >= 48 && key <= 57 || key == 8 || key == 0 || key == 32){
					if(len == 2 || len == 5){
						key != 8 ? data.value += separador : '';
					}
					 return true;
				}
				return false;
			}
		</script>
	</head>
	<body>
		<form action="#">
			Data:<input type="text" size="15" maxlength="10" onkeypress="return formatDate(event, this, '/')">
 		</form>
	</body>
</html>

nesse alert returna o valor do key como undefined alert(key);

e isso apenas no IE 8, aqui no trabalho uso o IE 6, e funciona perfeito.
Alguem sabe se é um bug do IE 8, ou se eles mudarão o event?

3 Respostas

T

Mudarão (futuro, ou seja, ainda vão mudar) ou mudaram (passado, ou seja, eles já fizeram isso de mudar)?

De qualquer maneira, a sintaxe correta do alert é “window.alert”.

caiomacedor

Muito obrigado Thiago, mas acho que vc não entendeu. Eu estou falando do window.Event que pega o valor das teclas que foi pressionada.

T

Bom, olhando esta referência ( http://www.w3schools.com/jsref/jsref_onkeypress.asp ), dá a impressão que você deveria fazer assim:

var key = window.event ? e.keyCode : e.which ;

E por algum motivo o IE 6 aceitava e.which.

Criado 1 de abril de 2009
Ultima resposta 1 de abr. de 2009
Respostas 3
Participantes 2