elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Sigue las noticias más importantes de seguridad informática en el Twitter! de elhacker.NET


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web (Moderador: #!drvy)
| | |-+  input con tres decimales. javascript
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: input con tres decimales. javascript  (Leído 2,538 veces)
OssoH


Desconectado Desconectado

Mensajes: 911


Ver Perfil
input con tres decimales. javascript
« en: 27 Septiembre 2013, 13:34 pm »

Hola :
Tengo un campo edit y quiero establecer una máscara para que me permita introducir tantos enteros como desee y sólo tres decimales.

Tengo el siguiente codigo
Código:
<script>
function NumCheck(e, field) {
key = e.keyCode ? e.keyCode : e.which

// backspace
if (key == 8) return true
// 0-9
if (key > 47 && key < 58) {
if (field.value == "") return true
//return field.value.toFixed(2);
regexp = /.[0-9]{3}$/
return !(regexp.test(field.value))
}
// .
if (key == 46) {
if (field.value == "") return false
regexp = /^[0-9]+$/
return regexp.test(field.value)
}
// other key return false
return false;

}
</script>
<input type="text" onkeypress="return NumCheck(event, this)"/>

Si que funciona la parte decimal porque te deja poner hasta un máximo de 3 digitos, pero el problema está en la parte entera que te deja poner hasta 4 digitos máximo.
Es decir, si escribo 230090.123 no me lo permite.

Alguien sabe como arreglarlo?

Gracias de antemano!!


En línea

OssoH


Desconectado Desconectado

Mensajes: 911


Ver Perfil
Re: input con tres decimales. javascript
« Respuesta #1 en: 27 Septiembre 2013, 17:19 pm »

nada ...sigo intentandolo. La expresión regular se me "atraganta"


En línea

OssoH


Desconectado Desconectado

Mensajes: 911


Ver Perfil
Re: input con tres decimales. javascript
« Respuesta #2 en: 27 Septiembre 2013, 18:08 pm »

Al final lo he conseguido. Pongo la solución aunque seguramente haya una forma más fácil de hacerlo.

Código:
function onlyDotsAndNumbers(txt, event) {
    var charCode = (event.which) ? event.which : event.keyCode   
   
// backspace
if (charCode == 8) return true

if (charCode == 46) {
        if (txt.value.indexOf(".") < 0)
            return true;
        else
            return false;
    }

    if (txt.value.indexOf(".") > 0) {
        var txtlen = txt.value.length;
        var dotpos = txt.value.indexOf(".");
        if ((txtlen - dotpos) > 3)
            return false;
    }

    if (charCode > 31 && (charCode < 48 || charCode > 57))
        return false;

    return true;
}

En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
duda con input box y javascript
Desarrollo Web
^kazike^ 0 3,004 Último mensaje 22 Julio 2010, 16:20 pm
por ^kazike^
javascript/php - leer input, mostrar
Desarrollo Web
Neibar 3 3,744 Último mensaje 14 Mayo 2012, 06:57 am
por engel lex
[Pregunta]: INPUT CON javascript (DINERO)
Desarrollo Web
Leguim 3 2,353 Último mensaje 28 Abril 2019, 06:16 am
por Leguim
Por que me muestra menos dias y mes input date javascript
Desarrollo Web
SrTrp 3 3,714 Último mensaje 6 Noviembre 2020, 01:53 am
por EdePC
[Pregunta]: ¿Como escribir en un input con javascript?
Desarrollo Web
**Aincrad** 7 6,683 Último mensaje 10 Septiembre 2021, 23:31 pm
por [u]nsigned
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines