Modifier "textara" à la volée

Modifier "textara" à la volée - HTML/CSS - Programmation

Marsh Posté le 10-08-2009 à 14:37:22    

Bonjour à toutes et à tous !
 
Un utilisateur entre des caractères dans un champ "textarea" d'un formulaire html.
A chaque caractère entré, je souhaite le modifier par un autre caractère (en fonction du caractère entré).
 
Savez-vous comment puis-je faire cela ? Est-ce possible ? Si oui pouvez-vous me mettre sur la piste ?
 
D'avance, merci.

Reply

Marsh Posté le 10-08-2009 à 14:37:22   

Reply

Marsh Posté le 10-08-2009 à 14:50:53    

regarde du coté de l'évènement onkeypress en javascript...

Reply

Marsh Posté le 10-08-2009 à 15:19:50    

Merci, je vais regarder.

Reply

Marsh Posté le 10-08-2009 à 17:43:32    

Je me prends la tête depuis ce matin mais mon code ne fonctionne pas avec onkeypress sur Firefox,  
Voici le code que j'ai :
 
<script language="JavaScript">
 function process_keypress(evt) {
 var e = (window.event) ? window.event : evt;
 // si nous avons un évênement clavier
 if (e.type == "keypress" & e.keyCode > 0) {
 // on sauve la valeur dans le champs texte  
 document.getElementById("texte" ).value = e.keyCode ;
 }
 return true;
 }
 document.onkeypress = process_keypress();
 </script>  
 
 
Ca m'affiche "window.event undefined" comme erreur
 
Quelqu'un peut-il m'aider pour résoudre ce problème ?


Message édité par misterZidane le 10-08-2009 à 17:44:01
Reply

Marsh Posté le 10-08-2009 à 22:06:38    

Ca dépend du browser ;)
 
Ca devrait t'aider ;)
 

Citation :


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
  <meta http-equiv="content-type" content="text/html; charset=windows-1250">
  <meta name="generator" content="PSPad editor, www.pspad.com">
  <script type="text/javascript" language="javascript">
var BrowserDetect = {
 init: function () {
  this.browser = this.searchString(this.dataBrowser) || "An unknown browser";
  this.version = this.searchVersion(navigator.userAgent)
   || this.searchVersion(navigator.appVersion)
   || "an unknown version";
  this.OS = this.searchString(this.dataOS) || "an unknown OS";
 },
 searchString: function (data) {
  for (var i=0;i<data.length;i++) {
   var dataString = data[i].string;
   var dataProp = data[i].prop;
   this.versionSearchString = data[i].versionSearch || data[i].identity;
   if (dataString) {
    if (dataString.indexOf(data[i].subString) != -1)
     return data[i].identity;
   }
   else if (dataProp)
    return data[i].identity;
  }
 },
 searchVersion: function (dataString) {
  var index = dataString.indexOf(this.versionSearchString);
  if (index == -1) return;
  return parseFloat(dataString.substring(index+this.versionSearchString.length+1));
 },
 dataBrowser: [
  {  string: navigator.userAgent,
   subString: "OmniWeb",
   versionSearch: "OmniWeb/",
   identity: "OmniWeb"
  },
  {
   string: navigator.vendor,
   subString: "Apple",
   identity: "Safari"
  },
  {
   prop: window.opera,
   identity: "Opera"
  },
  {
   string: navigator.vendor,
   subString: "iCab",
   identity: "iCab"
  },
  {
   string: navigator.vendor,
   subString: "KDE",
   identity: "Konqueror"
  },
  {
   string: navigator.userAgent,
   subString: "Firefox",
   identity: "Firefox"
  },
  {
   string: navigator.vendor,
   subString: "Camino",
   identity: "Camino"
  },
  {  // for newer Netscapes (6+)
   string: navigator.userAgent,
   subString: "Netscape",
   identity: "Netscape"
  },
  {
   string: navigator.userAgent,
   subString: "MSIE",
   identity: "Explorer",
   versionSearch: "MSIE"
  },
  {
   string: navigator.userAgent,
   subString: "Gecko",
   identity: "Mozilla",
   versionSearch: "rv"
  },
  {   // for older Netscapes (4-)
   string: navigator.userAgent,
   subString: "Mozilla",
   identity: "Netscape",
   versionSearch: "Mozilla"
  }
 ],
 dataOS : [
  {
   string: navigator.platform,
   subString: "Win",
   identity: "Windows"
  },
  {
   string: navigator.platform,
   subString: "Mac",
   identity: "Mac"
  },
  {
   string: navigator.platform,
   subString: "Linux",
   identity: "Linux"
  }
 ]
 
};
BrowserDetect.init();
 
 
function keyDownEvent(e)
{
 
 if( !e )
 {
  if( window.event )
  {
    e = window.event;
  }
  else
  {
    return;
  }
 }
 
 if( BrowserDetect.browser == 'Explorer'  )
 {
  e = e.keyCode;
 }
 
 if( BrowserDetect.browser == 'Firefox'  )
 {
  e = e.which;
 }
 
  myFunction(e)
}
 
function myFunction(e)
{
  alert(e);
  //click on "u" key (= 104)
  if( e == 104 )
    {
      document.getElementById('txtZone').value =  "prouuuuuuuuuuuuuuuut";
    }
}
 
</script>
 
  <title></title>
  </head>
  <body>
   <textarea id="txtZone" onkeypress="keyDownEvent();">test</textarea>
  </body>
</html>
 


 
Ca marche même sous Lynx :D


Message édité par olive127 le 10-08-2009 à 22:08:38
Reply

Marsh Posté le 10-08-2009 à 22:27:46    


Il me parait correct ton code, sauf l'initialisation de onkeypress, ça devrait plutôt être :

Code :
  1. document.onkeypress = process_keypress


(sans les parenthèses donc, sinon tu lances un appel de fonction au lieu d'assigner une fonction à une propriété).

Reply

Marsh Posté le 12-08-2009 à 16:35:01    

tpierron a écrit :


Il me parait correct ton code, sauf l'initialisation de onkeypress, ça devrait plutôt être :

Code :
  1. document.onkeypress = process_keypress


(sans les parenthèses donc, sinon tu lances un appel de fonction au lieu d'assigner une fonction à une propriété).


 
Bah justement non ca marche pas son code avec Firefox, c'est different la gestion des evenements entre Firefox et IE.

Reply

Marsh Posté le 14-08-2009 à 10:48:50    

Teste avec onkeyup plutôt que onkeypress

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed