Onkeyup dinámicamente

Hola experto de antemano muchas gracias por la ayuda que me puedas prestar con la siguiente pregunta: estoy creando un campo para formulario tipo text desde el script con el siguiente código:
 var el = document.createElement('input');
  el.type = 'text';
  el.name = 'txtRow' + iteration;
  el.id = 'txtRow' + iteration;
  el.size = 40;
la idea es implementar la siguiente propiedad onkeyup = "puntitos(this,this.value.charAt(this.value.length-1))" para que automaticamente llame la funcion puntitos que me coloca los indicadores de mil automaticamente y lo hago de la siguiente forma   el.onkeyup = 'puntitos(this,this.value.charAt(this.value.length-1))'; pero no me funciona. Tienes alguna idea de como puede funcionar. Gracias

1 Respuesta

Respuesta
1
Prueba a poner el.onkeyup="this.value=puntitos(.......)"
Pero no sé si no te funciona por la función, no sé cual es el error. Es sencillo evaluar una cadena para convertirla a formato de moneda, y hay muchas opciones de poner máscaras para cubrir el campo.
El problema es que dependiendo de como estés haciendo la función, cada vez que entra evalúa la cadena:
1 evalúo, sólo un número, no pongo punto
12 evalúo, sólo dos números, no pongo punto
123 ídem
1234 ahora tengo que poner un punto y dejarlo en 1.234
1.2345 ¿? No tengo que poner más puntos, tengo que mover ese, pero para ello no puedo evaluar "1.2345" tengo que evaluar "12345" por lo tanto no puedo usar "this.value" si no una cadena limpia de puntos y espacios para evaluarla desde cero.
La solución es muy sencilla para máscaras escritas de izquierda a derecha, como pueden ser fechas, pero se torna complicada cuando es moneda ya que no solo hay que añadir puntos, si no que hay que desplazar los existentes.
Kike

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas