J'ai réussi à mettre en forme les lettres d'un tableau au fur et à mesure que je les tape dans un champ de saisie (input) en leur affectant une classe
Mais je ne parviens pas à supprimer ladite classe (caracteresaisigrille.classList.remove("lettreselectionnee");, certes) au fur et à mesure que j'efface les lettres à coup de backspace ou de delete dans l'input.
Comment puis-je faire, selon vous ?
Quelle est la meilleure technique ?
Je capitalise dans un tableau stocké en local ce qui est tapé au fur et à mesure et je remove la classe des items que je pop,
- ou bien -
j'ai la possibilité d'identifier la lettre effacée ?
parce que KeyboardEvent, il peut juste me dire que j'ai appuyé sur backspace ou delete, à mon sens
Dans l'un ou l'autre cas, je n'y parviens pas...
Y a-t-il quelqu'un parmi vous qui peut me donner un coup de pouce, svp ?
Merci d'avance !
Modifié par Reka (20 Jan 2019 - 22:02)
<table class="boggle">
<tbody>
<tr>
<td id="P">P</td>
<td id="A">A</td>
<td id="S">S</td>
<td id="G">G</td>
</tr>
<tr>
<td id="Q">Q</td>
<td id="O">O</td>
<td id="B">B</td>
<td id="E">E</td>
</tr>
<tr>
<td id="D">D</td>
<td id="L">L</td>
<td id="C">C</td>
<td id="M">M</td>
</tr>
<tr>
<td id="N">N</td>
<td id="J">J</td>
<td id="T">T</td>
<td id="V">V</td>
</tr>
</tbody>
</table>
<form action="play.php" method="post">
<input type="text" name="mot" id="mot" maxlength="30" autocomplete="off" autofocus="" onkeypress="whichCharIsIt(event);" placeholder="mot">
<input type="submit" name="ok" value="ok" id="envoimot">
</form>
table.boggle td.lettreselectionnee {
background-color: #ECB445;
}
function whichCharIsIt(event) {
var keynum;
var tirage = "<?php echo $tirage ?>"; // "A;E;I;G;L;M...."(str)
var tiragetab = tirage.split(";"); // crée un tableau avec tirage
// identifier le caractère tapé
if(window.event) { // IE
keynum = event.keyCode;
} else if(event.which){ // Netscape/Firefox/Opera
keynum = event.which;
}
var caracteresaisi = String.fromCharCode(keynum).toUpperCase(); // renvoie le caractère tapé
var searchcar = tiragetab.indexOf(caracteresaisi); // renvoie l'indice du caractère tapé dans le tableau tiragetab
var caracteresaisigrille = document.getElementById(caracteresaisi);
caracteresaisigrille.classList.add("lettreselectionnee");
}
Mais je ne parviens pas à supprimer ladite classe (caracteresaisigrille.classList.remove("lettreselectionnee");, certes) au fur et à mesure que j'efface les lettres à coup de backspace ou de delete dans l'input.
Comment puis-je faire, selon vous ?
Quelle est la meilleure technique ?
Je capitalise dans un tableau stocké en local ce qui est tapé au fur et à mesure et je remove la classe des items que je pop,
- ou bien -
j'ai la possibilité d'identifier la lettre effacée ?
parce que KeyboardEvent, il peut juste me dire que j'ai appuyé sur backspace ou delete, à mon sens
Dans l'un ou l'autre cas, je n'y parviens pas...
Y a-t-il quelqu'un parmi vous qui peut me donner un coup de pouce, svp ?
Merci d'avance !
Modifié par Reka (20 Jan 2019 - 22:02)