Foros del Web » Programando para Internet » Javascript »

Masked Input, separador miles

Estas en el tema de Masked Input, separador miles en el foro de Javascript en Foros del Web. Hola a todos. Escribo para pedir su ayuda. Resulta que estoy en un proyecto hecho en .net, y necesito poner a algunos campos input, los ...
  #1 (permalink)  
Antiguo 12/05/2011, 13:52
 
Fecha de Ingreso: abril-2007
Ubicación: Chile
Mensajes: 27
Antigüedad: 17 años, 1 mes
Puntos: 0
Pregunta Masked Input, separador miles

Hola a todos. Escribo para pedir su ayuda. Resulta que estoy en un proyecto hecho en .net, y necesito poner a algunos campos input, los separadores de miles, eso no es gran problema, pero si lo es el hecho que se necesitan solo para visualizar la el contenido o al momento de ingresar, pero una vez que se da a grabar los valores deben quedar en la base de datos solo como números, sin los puntos o comas de los separadores. Lo complejo es que es un formulario muy extenso y la forma de identificar si un campo input es de tipo numérico es agregando un atributo llamado data-type="numerico", eso es para validaciones por javascript con jquery, pero el visual no reconoce este atributo como para filtrar en el codebehind los separadores. A su vez el visual hace un barrido de todos los cambios y los graba automáticamente en la base de datos. Quería saber si hay alguna forma de poner los separadores, pero que sean solo de manera visual, y que al momento de leer el contenido para grabar, tome el número solo.

por ejemplo que se vea así: 1.500.000, pero que al obtener el valor del input se tome así: 1500000.

Como dije antes el visual obtiene todos los valores y no se hace por medio del javascript (ejemplo ajax), entonces no puedo filtrar estos valores antes de enviarlos a la base de datos.

Gracias.
  #2 (permalink)  
Antiguo 12/05/2011, 14:05
Avatar de _cronos2
Colaborador
 
Fecha de Ingreso: junio-2010
Mensajes: 2.062
Antigüedad: 13 años, 10 meses
Puntos: 310
Respuesta: Masked Input, separador miles

Creo que no te entendí del todo, pero lo que puedes hacer es usar replace:
Código Javascript:
Ver original
  1. var num = num.replace(/[.,]/g, '');
Saludos (:
__________________
" Getting older’s not been on my plans
but it’s never late, it’s never late enough for me to stay. "
Cigarettes - Russian Red
  #3 (permalink)  
Antiguo 12/05/2011, 14:24
Avatar de Aijoona
Colaborador
 
Fecha de Ingreso: mayo-2011
Ubicación: Buenos Aires
Mensajes: 779
Antigüedad: 13 años
Puntos: 343
Respuesta: Masked Input, separador miles

@ _cronos2
No le va a servir ya que es victima de los desarrollos enlatados.
__________________
blog | @aijoona
  #4 (permalink)  
Antiguo 12/05/2011, 14:28
 
Fecha de Ingreso: abril-2007
Ubicación: Chile
Mensajes: 27
Antigüedad: 17 años, 1 mes
Puntos: 0
Respuesta: Masked Input, separador miles

Gracias _cronos2 por tu respuesta, en realidad yo no me expliqué del todo bien. Imaginate un formulario muy largo que contiene de todo, texto, números, etc. Se puede de manera relativamente simple poner una función javascript que vaya poniendo los separadores de miles para números a medida que se escriba el texto. El problema es que al grabar en la base de datos, se graba así tal cual: 1.500.000, después al hacer otro tipo de validaciones, por ejemplo sumar el campo1 + campo2 y ver si es igual a campo3, tengo problemas con los puntos (o comas), porque para que resulten las operaciones matemáticas los números deben estar sin nada ejemplo: 1500000. Ahora, si yo usara ajax, y al grabar usara javascript, no habría tanto problema, ya que le quitaría los puntos con javascript con la función que me acabas de mostrar, pero el problema es que la aplicación es en .net y el codebehind se hace cargo de tomar todos los campos y guardarlos en la base de datos. Entonces debería de poner ese filtro en el vb (el codebehind es con visual basic), ya que este rescata todos los valores, pero no tengo manera de identificar que campos son numéricos o no, entonces no puedo quitarles punto y coma a todos los campos input, ya que hay algunos que tienen texto y perdería el formato.

Lo ideal sería algo en javascript para hacer que se "vea" los números con puntos, pero al momento de obtener el valor estos salgan sin nada, para guardarlos en la base de datos de manera correcta.

No sé si me explique bien ahora. GRACIAS!!!.
  #5 (permalink)  
Antiguo 12/05/2011, 14:49
Avatar de _cronos2
Colaborador
 
Fecha de Ingreso: junio-2010
Mensajes: 2.062
Antigüedad: 13 años, 10 meses
Puntos: 310
Respuesta: Masked Input, separador miles

Entonces en el onsubmit del form puedes recorrer todos los campos del form para ver cuáles son los que te interesa cambiar, así el valor que se envía es el que tú quieras.
Saludos (:
__________________
" Getting older’s not been on my plans
but it’s never late, it’s never late enough for me to stay. "
Cigarettes - Russian Red
  #6 (permalink)  
Antiguo 12/05/2011, 14:56
 
Fecha de Ingreso: abril-2007
Ubicación: Chile
Mensajes: 27
Antigüedad: 17 años, 1 mes
Puntos: 0
Respuesta: Masked Input, separador miles

Estimado, yo no soy experto en .net, solo hago pequeñas cosas, hay alguien más que esta más metido en ese tema, la cosa es que cuando se presiona grabar, se graba por anthem (es algo parecido a ajax), pero esto lo toma y lo pasa al codebehind, por ende no se hace un tipico post. El visual agarra todo antes y lo procesa, no sirve usar esas funcionalidades de javascript. Por eso estoy un poco complicado, lo otro sería poner un mask input (mascara) por visual, pero tendría que ver en otra parte del foro. Esto es también bastante complicado.

Gracias.
  #7 (permalink)  
Antiguo 12/05/2011, 15:02
Avatar de Aijoona
Colaborador
 
Fecha de Ingreso: mayo-2011
Ubicación: Buenos Aires
Mensajes: 779
Antigüedad: 13 años
Puntos: 343
Respuesta: Masked Input, separador miles

De cualquier manera la interaccion cliente-servidor es por ajax o post, en cualquiera de ambos casos tendria que ser posible interceptar.

Tenes algun ejemplo online para que se pueda ver?
__________________
blog | @aijoona
  #8 (permalink)  
Antiguo 12/05/2011, 15:29
 
Fecha de Ingreso: abril-2007
Ubicación: Chile
Mensajes: 27
Antigüedad: 17 años, 1 mes
Puntos: 0
Respuesta: Masked Input, separador miles

Hola Aijoona, claro pero la idea no es meter mano en este anthem, al menos me dijeron eso, sería ideal que el input tuviera un atributo para valor y otro para lo que se muestra, algo así:

<input value="15000000" ver="1.500.000" />

Así el visual toma el value, pero visualmente para la gente se ven los separadores. Pero todos sabemos que lo que se ve en el input es exactamente el value que se obtiene.

Por eso preguntaba si había algo así para hacer. Aijoona, lamentablemente no hay ejemplo online para que puedas ver, tendré que ver con la propiedad Mask de visual a ver si es posible hacer algo así.

Igual muchas gracias por su tiempo, y si alguien tiene alguna solución bienvenida sea :).
  #9 (permalink)  
Antiguo 12/05/2011, 15:58
Avatar de _cronos2
Colaborador
 
Fecha de Ingreso: junio-2010
Mensajes: 2.062
Antigüedad: 13 años, 10 meses
Puntos: 310
Respuesta: Masked Input, separador miles

¿Entonces algo como esto no te sirve tampoco?
Código HTML:
Ver original
  1. <form action='procesar.php' method='post' onsubmit='cambiarValor(this);'>
  2. <input type='text' value='1.500.000' />
  3. <input type='submit' value='Enviar sin puntos' />
  4. </form>
Código Javascript:
Ver original
  1. function cambiarValor(frm){
  2.  var input = frm.elements[0];
  3.  input.value = input.value.replace(/[.,]/g, '');
  4. }
Saludos (:
__________________
" Getting older’s not been on my plans
but it’s never late, it’s never late enough for me to stay. "
Cigarettes - Russian Red
  #10 (permalink)  
Antiguo 12/05/2011, 16:17
 
Fecha de Ingreso: abril-2007
Ubicación: Chile
Mensajes: 27
Antigüedad: 17 años, 1 mes
Puntos: 0
Respuesta: Masked Input, separador miles

creo que de esa manera no sirve porque el anthem captura todo antes, tendría que meter mano en los callback del anthem... voy a mirarlo más en detalle y veo si puedo hacer una llamada antes a la función. Ojalá!. Gracias! :)
  #11 (permalink)  
Antiguo 12/05/2011, 20:15
Avatar de Aijoona
Colaborador
 
Fecha de Ingreso: mayo-2011
Ubicación: Buenos Aires
Mensajes: 779
Antigüedad: 13 años
Puntos: 343
Respuesta: Masked Input, separador miles

Lo ideal seria que tenga hooks del tipo preSendRequest, postSendRequest y así.
__________________
blog | @aijoona

Etiquetas: input, mask
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 11:18.