[Pregunta]: INPUT CON javascript (DINERO)

Iniciado por Leguim, 23 Abril 2019, 06:05 AM

0 Miembros y 1 Visitante están viendo este tema.

Leguim

Buenas noches!

Me gustaría saber como podría hacer para que a medida que voy escribiendo un numero en un input este se vaya formateando, es decir si yo escribo '100' no hace nada pero si escribo '1000' => que al momento de estar escribiendo aparezca el punto en la parte correspondiente, '1.000' y así con los demás.. Estuve buscando pero no encuentro algo que me pueda funcionar, gracias desde ya.

yuimugi912

#1
prueba eso;

Código (javascript) [Seleccionar]
var numero=10000
var numcomas=numero.toLocaleString();
alert(numcomas)


eso si el resultado es un string

eso podrias ponerlo en un onkeypress , si necesitas que cambie al instante
https://www.w3schools.com/jsref/event_onkeypress.asp

iCoke

#2
buenas tardes, esto es lo que necesitabas?
vanilla JS
Código (javascript) [Seleccionar]


let input = document.getElementById("put");

input.addEventListener('keyup',(e)=>{
   if(event.which >= 37 && event.which <= 40){
       event.preventDefault();
     }
   let resultado = input.value.replace(/\D/g, "").replace(/([0-9])([0-9]{2})$/, '$1.$2').replace(/\B(?=(\d{3})+(?!\d)\.?)/g, ",");
   
   return input.value = resultado;
     
})


con JQuery
Código (javascript) [Seleccionar]

$('input.number').keyup(function(event) {


 if(event.which >= 37 && event.which <= 40){
   event.preventDefault();
 }

 $(this).val(function(index, value) {
   return value
     .replace(/\D/g, "")
     .replace(/([0-9])([0-9]{2})$/, '$1.$2')  
     .replace(/\B(?=(\d{3})+(?!\d)\.?)/g, ",")
   ;
 });


en estos casos use expresiones regulares, las cuales podes modificar para cambiar detalles, en el ejemplo que hice quedaría así "1,000.00"(para mil, con 00 centavos)

Leguim