Foros del Web » Programando para Internet » Javascript »

[SOLUCIONADO] mask para input text

Estas en el tema de mask para input text en el foro de Javascript en Foros del Web. Hola, tengo un problemita lo que pasa es que tengo unos campos input de texto en el cual solo se permiten valores numericos, pero quiero ...
  #1 (permalink)  
Antiguo 18/06/2014, 13:27
 
Fecha de Ingreso: septiembre-2012
Ubicación: Norte de Santander
Mensajes: 127
Antigüedad: 11 años, 7 meses
Puntos: 1
mask para input text

Hola, tengo un problemita lo que pasa es que tengo unos campos input de texto en el cual solo se permiten valores numericos, pero quiero que esos numeros se muestren como valores monetarios. 1000 = 1.000 pero solo a la vista del usuario pues tengo una funcion para sumar esos campos y si me envia el valor 1.000 no me realiza la suma.
  #2 (permalink)  
Antiguo 18/06/2014, 13:48
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 15 años, 11 meses
Puntos: 528
Respuesta: mask para input text

Hay plugin para jquery que hacen el mask que requieres, aunque donde recibes los valores bien podrías hacer el proceso inverso, para quitar el formato. Aunque sin detalles del código...
  #3 (permalink)  
Antiguo 18/06/2014, 13:54
 
Fecha de Ingreso: septiembre-2012
Ubicación: Norte de Santander
Mensajes: 127
Antigüedad: 11 años, 7 meses
Puntos: 1
Respuesta: mask para input text

Mmm pues el plugin si me enmascara, pero no me permite sumar los valores.

Esta es la funcion que uso para sumar los datos:

Código Javascript:
Ver original
  1. function sumar() {
  2.         var n1 = parseInt(document.form.copias1.value);
  3.         var n2 = parseInt(document.form.valxmetro1.value);
  4.         var n3 = parseInt(document.form.alto1.value);
  5.         var n4 = parseInt(document.form.ancho1.value);
  6.         var res = n1*n2*n3*n4/10000;
  7.         var basura = res-parseInt(res/1000)*1000;
  8.         if(basura<500){
  9.             var valor1 = parseInt(res/1000)*1000;
  10.         }else{
  11.             var valor1 = parseInt(res/1000)*1000+1000;
  12.         }
  13.         document.form.subtotal1.value=valor1;

Y para llamarla lo hago con el onblur del campo de texto.

Pero al aplicar el metodo mask del plugin deja de funcionar.
  #4 (permalink)  
Antiguo 18/06/2014, 13:58
 
Fecha de Ingreso: septiembre-2012
Ubicación: Norte de Santander
Mensajes: 127
Antigüedad: 11 años, 7 meses
Puntos: 1
Respuesta: mask para input text

Tambien he probado con esta. Hay alguna forma de hacer el proceso inverso?

Código Javascript:
Ver original
  1. /**************************************************************
  2. Máscara de entrada. Script creado por Tunait! (21/12/2004)
  3. Si quieres usar este script en tu sitio eres libre de hacerlo con la condición de que permanezcan intactas estas líneas, osea, los créditos.
  4. No autorizo a distribuír el código en sitios de script sin previa autorización
  5. Si quieres distribuírlo, por favor, contacta conmigo.
  6. Ver condiciones de uso en http://javascript.tunait.com/
  7. ****************************************************************/
  8. var patron = new Array(2,3,3)
  9. function mascara(d,sep,pat,nums){
  10. if(d.valant != d.value){
  11.     val = d.value
  12.     largo = val.length
  13.     val = val.split(sep)
  14.     val2 = ''
  15.     for(r=0;r<val.length;r++){
  16.         val2 += val[r] 
  17.     }
  18.     if(nums){
  19.         for(z=0;z<val2.length;z++){
  20.             if(isNaN(val2.charAt(z))){
  21.                 letra = new RegExp(val2.charAt(z),"g")
  22.                 val2 = val2.replace(letra,"")
  23.             }
  24.         }
  25.     }
  26.     val = ''
  27.     val3 = new Array()
  28.     for(s=0; s<pat.length; s++){
  29.         val3[s] = val2.substring(0,pat[s])
  30.         val2 = val2.substr(pat[s])
  31.     }
  32.     for(q=0;q<val3.length; q++){
  33.         if(q ==0){
  34.             val = val3[q]
  35.         }
  36.         else{
  37.             if(val3[q] != ""){
  38.                 val += sep + val3[q]
  39.                 }
  40.         }
  41.     }
  42.     d.value = val
  43.     d.valant = val
  44.     }
  45. }
  #5 (permalink)  
Antiguo 18/06/2014, 14:26
 
Fecha de Ingreso: septiembre-2012
Ubicación: Norte de Santander
Mensajes: 127
Antigüedad: 11 años, 7 meses
Puntos: 1
Respuesta: mask para input text

Ok amigos, esta resuelto dejare aqui la solucion solo realice unos pequeños cambios a la funcion sumar:

Código Javascript:
Ver original
  1. function sumar() {
  2.         patron = ".";
  3.         var n1 = parseInt(document.form.copias1.value);
  4.         var n2 = document.form.valxmetro1.value;
  5.         n2=n2.replace(patron,'');
  6.         n2=parseInt(n2);
  7.         var n3 = parseInt(document.form.alto1.value);
  8.         var n4 = parseInt(document.form.ancho1.value);
  9.         var res = n1*n2*n3*n4/10000;
  10.         var basura = res-parseInt(res/1000)*1000;
  11.         if(basura<500){
  12.             var valor1 = parseInt(res/1000)*1000;
  13.         }else{
  14.             var valor1 = parseInt(res/1000)*1000+1000;
  15.         }
  16.         document.form.subtotal1.value=valor1;

Etiquetas: funcion, input, text, valor
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:18.