11548 sujets

JavaScript, DOM et API Web HTML5

bonjour à tous

je souhaite à partir d'une zone texte d'un formulaire
récupérer la valeur de cette zone à chaque fois qu'une modification intervient :


// si une touche est pressée
if(onkeypress) {
 // ajout de caracteres
 // ou keypress effacer
 // enregsitrer nouvelle 
 String = document.forms.moFormulaire.zoneTexte.value;
 }


pour récupérer la valeur de ce caractère j'essaie d'utiliser la propriété 'which' si
l'objet event est passé en argument de façon implicite ( "façon Netcape") et keyCode si objet est une propriété de window ("façon IE")

En fait je n'arrive pas à utiliser ces propriétés (ainsi que la méthode fromCharCode)


... mais je dois me perdre quelque part ( dans le javascript sans doute Smiley lol )

Mon code :

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
	<head>
		<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
		<title>Untitled Document</title>
		<script type="text/ecmascript">
			// variable globale
			var texte;
			
			// fonction de gestion
			function affiche(evt) {
				// objet event
				if(!evt) {var evt = window.event;}
				
				texte = document.forms.formulaire.zoneTexte.value;
				if(evt.keyCode) {
					alert(evt.keyCode);
				}
				else alert(evt.which);
				//var caractere = texte.fromCharCode;
				alert(texte);
				
			}
			
		</script>
	</head>
	<body>
		<form name="formulaire">
			<input name="zoneTexte" size="15" onkeypress="affiche(evt)">
		</form>
	</body>
</html>


Mon objectif est de récupérer ces informations pour transformer la saisie du formulaire en texte SVG

merci de vos conseils ( et désolé du code un rien 'brouillon')

edit : petit test explicant bien mieux mes problèmes

l'affichage a un temps de retard
le retour à la ligne n'est pas pris en compte de la meme manière en svg
(j'ai donc besoin de savoir si c'est la clé 'entrée ' qui est appuyée --> si oui je doit créer un nouveau noeud texte pour afficher la nouvelle ligne sous la première ( implication des coordonnées en x et y de la zone svg .. mais çà c'est pour moi
Smiley langue )
Modifié par kzone (05 Mar 2007 - 15:26)
Salut,

Je pense qu'au moment où l'événement "keypress" se produit, le caractère n'a pas encore été ajouté à ton champ, ce qui permet éventuellement d'empêcher qu'il le soit. Il faut donc sans doute que tu passes par "keyup".