J'essaie de créer une fonction qui compte le nombre de caractères restants. Je veux utiliser addEvenetListener
pour écouter les types d'événements:Événement n'appelant pas lorsqu'il est attaché avec addEventListener
var output = document.getElementById('output');
\t var tweetTxt = document.getElementById("tweettext");
\t var charCount = 10;
\t var tweetTxt = document.getElementById("tweettext");
\t function textCounter(){
\t \t console.log("it works");
\t \t var count = charCount - document.getElementById("tweettext").value.length;
\t \t
\t \t if(count < 0){
\t \t \t output.classList.add("red");
\t \t \t output.classList.remove("black");
\t \t \t console.log("Less than zero");
\t \t }else{
\t \t \t output.classList.add("black");
\t \t \t output.classList.remove("red");
\t \t }
\t \t output.innerHTML = count + " characters left";
\t }
\t
tweetTxt.addEventListener('onKeyDown', textCounter, false);
tweetTxt.addEventListener('onKeyUp', textCounter, false);
tweetTxt.addEventListener('onChange', textCounter, false);
<div class="container">
\t <div class="row">
\t \t <div>
\t \t \t <textarea name="tweettext" id="tweettext">
\t \t \t \t
\t \t \t </textarea>
\t \t </div>
\t \t <div id="output" class="black">
\t \t \t
\t \t </div>
\t </div>
</div>
Pour une raison quelconque, cela ne fonctionne pas. Mais quand j'attache les auditeurs à l'élément <textarea>
cela fonctionne:
var output = document.getElementById('output');
\t //var tweetTxt = document.getElementById("tweettext");
\t var charCount = 10;
\t var tweetTxt = document.getElementById("tweettext");
\t function textCounter(){
\t \t console.log("it works");
\t \t var count = charCount - document.getElementById("tweettext").value.length;
\t \t
\t \t if(count < 0){
\t \t \t output.classList.add("red");
\t \t \t output.classList.remove("black");
\t \t \t console.log("Less than zero");
\t \t }else{
\t \t \t output.classList.add("black");
\t \t \t output.classList.remove("red");
\t \t }
\t \t output.innerHTML = count + " characters left";
\t }
\t
/* tweetTxt.addEventListener('onKeyDown', textCounter, false);
tweetTxt.addEventListener('onKeyUp', textCounter, false);
tweetTxt.addEventListener('onChange', textCounter, false); */
<div class="container">
\t <div class="row">
\t \t <div>
\t \t \t <textarea name="tweettext" id="tweettext" onKeyUp="textCounter();" onKeyDown="textCounter();" onChange="textCounter();">
\t \t \t \t
\t \t \t </textarea>
\t \t </div>
\t \t <div id="output" class="black">
\t \t \t
\t \t </div>
\t </div>
</div>
Alors, qu'est-ce que je fais mal avec addEvenetListener
bien au-dessus?