2011-06-29 12 views
5

estoy tratando de formatear números en un campo de texto, así:formato de número (máscara de entrada) en jQuery

123.456.789

sé que hay una gran cantidad de plugins jQuery para hacer esto, sin embargo, todos cambian el valor real. Solo quiero que se vea formateado y no se envíe con formato.

Por ejemplo, si escribo 23845 en mi campo de texto, quiero que se convierta visualmente a 23,845, pero cuando envío el formulario quiero enviarlo como 23845.

¿Alguien sabe cómo puedo lograr esto? Todas las demás soluciones que he visto cambian el valor real presentado.

Respuesta

2

yo sepa, las máscaras plugin de no cambiar el valor, sino sólo la pantalla: http://plugins.jquery.com/plugin-tags/mask

[editar] dentro de la lista de todos los plugins, que he usado éste en mi código: https://github.com/RobinHerbots/jquery.inputmask ([editar 2 ] y trabajado como quiera he comprobado el código donde lo usé y el comportamiento predeterminado es que envía la máscara con el valor, debe usar una opción para desenmascarar como he dicho en mi comentario)

+0

Finalmente funcionó, pero tiene el problema de enviar el valor enmascarado con el envío del formulario. Tal vez me falta algo ... = ( – Ryan

+0

depende del plugin de la máscara de entrada que elijas. Algunos tienen la opción de desenmascarar (pero al contrario de lo que dije, lo siento, parece que no son los comportamientos predeterminados). mira la solución 'Desenmascarar 'aquí: https://github.com/RobinHerbots/jquery.inputmask/issues/8 – JMax

+0

¡Gracias por tu ayuda! He decidido que inputmask no es exactamente lo que quiero (no me gusta cómo tiene los marcadores de posición y los caracteres fijos allí y no puedo descifrar cómo quitarlos), sin embargo, me has señalado en la dirección correcta y finalmente encontré MeioMask. Funciona de maravilla. Desconecté las máscaras con el .smit () evento. http://www.meiocodigo.com/projects/meiomask/ – Ryan

0

Por favor, intente lo siguiente:

<script type="text/javascript"> 

     $(document).on('keyup', '.test', function() { 
      var x = $(this).val(); 
      $(this).val(x.toString().replace(/,/g, "").replace(/\B(?=(\d{3})+(?!\d))/g, ",")); 
     }); 
    </script> 

    <form> 
     <input class="test" type="text" /> 
    </form> 
Cuestiones relacionadas