hola, mi código no funciona, no sé por qué intenté hacer un contador de caracteres de área de texto que solo muestra el chachter no al máximo, aquí está el script java
let text = document.querySelector('#text'); let number = text.value.length; let count = document.querySelector('#count'); text.addEventListener("input", updateCount()); function updateCount(){ count.value + number } <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Karakter sayısı</title> <link rel="stylesheet" href="style.css"> </head> <body> <div class="ses"> <textarea id="text" placeholder="Yazıyı buraya Kopyala veya Yaz"></textarea> </div> <span id="filhu">Bu kadar yazdın:</span><span id="count">0</span> <script src="main.js"></script> </body> </html>En su text.addEventListener("input", updateCount()); asignación, no asignó la función updateCount al evento de input del elemento seleccionado, sino que la ejecutó una vez y asignó el valor de retorno inexistente de la llamada de función al evento.
Y en la función en sí, también deberá colocar (= asignar) el recuento calculado en algún lugar:
let text = document.querySelector('#text'); let count = document.querySelector('#count'); text.addEventListener("input", updateCount); function updateCount(ev){ count.textContent=ev.target.value.length; } <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Karakter sayısı</title> <link rel="stylesheet" href="style.css"> </head> <body> <div class="ses"> <textarea id="text" placeholder="Yazıyı buraya Kopyala veya Yaz"></textarea> </div> <span id="filhu">Bu kadar yazdın:</span><span id="count">0</span> <script src="main.js"></script> </body> </html> ev.target.value.length obtiene la longitud actual del elemento <textarea> y count.textContent= lo asigna al objetivo <span> .
Una mejor manera es suscribiéndose al evento keyup y obteniendo el valor del alcance usando this palabra clave
function characterCount() { document.getElementById('text').onkeyup = function () { document.getElementById('count').innerHTML = this.value.length; }; } <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Karakter sayısı</title> </head> <body> <div class="ses"> <textarea id="text" placeholder="Yazıyı buraya Kopyala veya Yaz" onchange="characterCount()"></textarea> </div> <span id="filhu">Bu kadar yazdın:</span><span id="count">0</span> </body> </html>