JavaScript - Concatenar variables para usar un JQuery genérico en varios textareas

 
Vista:
sin imagen de perfil
Val: 1
Ha disminuido su posición en 10 puestos en JavaScript (en relación al último mes)
Gráfica de JavaScript

Concatenar variables para usar un JQuery genérico en varios textareas

Publicado por Marta (1 intervención) el 28/03/2020 18:56:56
Hola buenas!

Estoy teniendo un problema, necesito que pase lo siguiente:
Que el usuario cuando clique en un textarea le aparezca el contador de caracteres, en este caso, 0/250. Hasta ahí todo ok.
El problema lo estoy teniendo cuando intento poner el mismo javascript para todos los textareas, es decir, quiero utilizar un javascript genérico para todos los textareas, concatenando los id. Os muestro:

Por un lado el script:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<script>
  function contarcaracteres (){
    var total=250;
 
    setTimeout(function(){
      var valor=document.getElementById('fe563');
      var respuesta=document.getElementById('res');
      var cantidad=valor.value.length;
 
      if(document.getElementById('lang').value == 'ES') {
    document.getElementById('res').innerHTML = cantidad + ' de 250 (quedan ' + (total - cantidad) + ')';}
      else{
    document.getElementById('res').innerHTML = cantidad + ' de 250 (queden ' + (total - cantidad) + ')';}
 
 
    });
 
 
 
  }
</script>

Y por otro lado el textarea y el div:
1
2
<textarea class="algo-mas" id="fe563" maxlength="250" name="P5" onpaste="contarcaracteres();" onkeyup="contarcaracteres();"></textarea>
<div id="res" style="margin: 0px 200px 0px 10px; color: #BFBABA" >0</div>

Ahora bien, necesito que el mismo script sin duplicarlo o triplicarlo sirva para los siguientes textareas:

1
2
3
4
5
<textarea class="algo-mas" name="PCC1" id="fe589"></textarea>
<div id="res" style="margin: 0px 200px 0px 10px; color: #BFBABA" >0</div>
 
<textarea class="algo-mas" name="PCC2" id="fe590"></textarea>
<div id="res" style="margin: 0px 200px 0px 10px; color: #BFBABA" >0</div>
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 91
Ha mantenido su posición en JavaScript (en relación al último mes)
Gráfica de JavaScript

Concatenar variables para usar un JQuery genérico en varios textareas

Publicado por Alfredo (36 intervenciones) el 29/03/2020 08:28:22
Saludos Marta,

Aquí te dejo el código funcionando.
1. Use event.target para obtener al elemento que llama a la funcion. de esta manera cualquier textarea que use la funcion tenga la misma funcionabilidad
2. Use template strings, o cadenas de texto de plantilla para construir la cadena de caracteres.

Espero que esta solución te ayude.


1
2
3
4
5
6
7
8
9
function contarcaracteres () {
  var maximo = 250;
  var elemento = event.target;
  var caracteres = elemento.value.length;
  var verbo = (document.getElementById('lang').value == 'ES') ? 'quedan' : 'queden';
  var texto = `${caracteres} de ${maximo} (${verbo} ${maximo - caracteres})`;
 
  document.getElementById('res').innerHTML = texto;
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar