11548 sujets

JavaScript, DOM et API Web HTML5

Bonjour,

Je suis en train de créer un site où j'utilise onkeypress pour que l'utilisateur ne puisse entrer que des numéros pour le numéro de téléphone.

comme ceci :

<p><label for="tel">Tél.</label><input type="text" id="tel" onKeypress="if((event.keyCode < 45 || event.keyCode > 57) && event.keyCode > 31 && event.keyCode != 43) event.returnValue = false; if((event.which < 45 || event.which > 57) && event.which > 31 && event.which != 43) return false;" /></p>


Le soucis c'est que l'attribut onkeypress n'est pas valide w3c.

Que puis-je faire ?
Modifié par gorn (08 Sep 2011 - 11:06)
Salut,
gorn a écrit :
Le soucis c'est que l'attribut onkeypress n'est pas valide w3c.

L'attribut onkeypress fait bel et bien partie du standard HTML 4 et XHTML 1.

Cela dit, pour faciliter la maintenance de ton code JavaScript, le mieux est d'appeler l'événement onkeypress dans un fichier externe.
Victor BRITO a écrit :
L'attribut onkeypress fait bel et bien partie du standard HTML 4 et XHTML 1.


onkeypress oui, onKeypress ne l'est pas en xHTML (comme onKeyPress, onkeyPress, etc.).

Mais le mieux est d'utiliser du "javascript discret", en attachant les événements en javascript (fichier externe ou non).
j'ai mis cette fonction dans mon script.js

/* Fonction pour interdire des touches pour les numéros */
	function chiffres(event) {
	// Compatibilité IE / Firefox
	if(!event&&window.event) {
		event=window.event;
	}
	// IE
	if(event.keyCode < 48 || event.keyCode > 57) {
		event.returnValue = false;
		event.cancelBubble = true;
	}
	// DOM
	if(event.which < 48 || event.which > 57) {
		event.preventDefault();
		event.stopPropagation();
	}
}


et dans mon html je l'ai appelé ainsi :

<input type="text" id="postal" onkeypress="chiffres(event)" />


Merci encore Smiley smile