Pavé numérique virtuel

Pavé numérique virtuel - HTML/CSS - Programmation

Marsh Posté le 28-01-2007 à 23:24:24    

Bonsoir à toutes et tous, je viens à vous après des jours de recherches infructueuses !
Je voudrais savoir si c'est possible de faire un pavé numérique virtuel (en javascript ou autre) qui me permette de l'utiliser sur différents champs texte et pas seulement dans une zone prédéfinie (comme une calculette).
Le but, c'est l'utilisation sur un tablet PC mais le clavier virtuel du tablet gêne la visu du logiciel, donc je voudrais trouver ou faire un clavier juste avec les chiffres (même pas les opération ... on s'en fout là !) pour que ce soit utilisable avec le stylet.
Je précise que je n'en ai besoin que sur une seule page (donc besoin de popup permanent qui dialogue avec d'autres fenetres ou autre !), mais le nombre de champs à remplir est variable et dynamique.
Si quelqu'un pouvait m'aiguiller ça serait tres sympa.
Je désespère un peu là :(
 
Merci d'avance.

Reply

Marsh Posté le 28-01-2007 à 23:24:24   

Reply

Marsh Posté le 29-01-2007 à 18:09:02    

Ok vous cassez pas j'ai trouvé ... merci !

Reply

Marsh Posté le 29-01-2007 à 22:45:35    

ta pas envie de parler de la solution au cas ou sa peut interesser ? ...

Reply

Marsh Posté le 30-01-2007 à 16:40:02    

Ben j'hésite un peu ... bon ok, c'est bien parce que je suis gentil :P
 
Voila le code, il suffit de générer les champs texte en php :
 

Code :
  1. <html>
  2. <head>
  3. <meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
  4. <style type='text/css'>
  5. td {cursor:hand;}
  6. .up { border: outset 2 px gray;
  7.  height:20px;
  8.  width:20px;
  9.  font-family:verdana;
  10.  text-align:center;
  11. }
  12. .down {border: inset 2 px gray;
  13.  height:20px;
  14.  width:20px;
  15.  font-family:verdana;
  16.  text-align:center;
  17. }
  18. </style>
  19. <script type='text/javascript'>
  20. var activeinput
  21. function populateTd()
  22. {
  23. var tdcollection = document.getElementsByTagName('table')[0].getElementsByTagName('td');
  24. for (i = 0 ; i < tdcollection.length ; i++)
  25. {
  26.  tdcollection[i].indice = i;
  27.  tdcollection[i].className = 'up';
  28.  tdcollection[i].onmousedown = function()
  29.  {
  30.   this.className = 'down';
  31.  }
  32.  tdcollection[i].onmouseup = function()
  33.  {
  34.   this.className = 'up';
  35.  }
  36.  tdcollection[i].onclick = function()
  37.  {
  38.   if (!!activeinput)
  39.   {
  40.    // pour entrer le numéro sur lequel on vient de taper
  41.    if(this.indice < 11)
  42.    {
  43.     activeinput.value += this.innerHTML;
  44.    }
  45.    // pour effacer le dernier caractere
  46.    if(this.indice == 11)
  47.    {
  48.     activeinput.value = activeinput.value.substr(0,activeinput.value.length-1);
  49.    }
  50.    // pour tout effacer
  51.    if(this.indice == 12)
  52.    {
  53.     activeinput.value = "";
  54.    }
  55.   }
  56.  }
  57. }
  58. }
  59. function highlightActive(obj)
  60. {
  61. var inputcollection = document.getElementsByTagName('input');
  62. for(i = 0 ; i < inputcollection.length ; i++)
  63. {
  64.     inputcollection[i].style.backgroundColor = (inputcollection[i]==obj) ? "lime" : "white";
  65. }
  66. }
  67. </script>
  68. <title>Pavé numérique</title>
  69. </head>
  70. <body onload='populateTd()'>
  71. <table>
  72. <tr>
  73. <td>7</td>
  74. <td>8</td>
  75. <td>9</td>
  76. </tr>
  77. <tr>
  78. <td>4</td>
  79. <td>5</td>
  80. <td>6</td>
  81. </tr>
  82. <tr>
  83. <td>1</td>
  84. <td>2</td>
  85. <td>3</td>
  86. </tr>
  87. <tr>
  88. <td colspan=2>0</td>
  89. <td>.</td>
  90. </tr>
  91. <tr>
  92. <td colspan=2>CE</td>
  93. <td>CA</td>
  94. </tr>
  95. </table>
  96. <br/>
  97. <input type='text' onFocus="highlightActive(this);activeinput=this" /><br/>
  98. <input type='text' onFocus="highlightActive(this);activeinput=this" /><br/>
  99. <input type='text' onFocus="highlightActive(this);activeinput=this" /><br/>
  100. <input type='text' onFocus="highlightActive(this);activeinput=this" /><br/>
  101. <input type='text' onFocus="highlightActive(this);activeinput=this" /><br/>
  102. <input type='text' onFocus="highlightActive(this);activeinput=this" /><br/>
  103. <input type='text' onFocus="highlightActive(this);activeinput=this" /><br/>
  104. <input type='text' onFocus="highlightActive(this);activeinput=this" /><br/>
  105. </body>
  106. </html>


 
et merci à SpaceFrog du forum developpez.com !

Reply

Sujets relatifs:

Leave a Replay

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