sábado, 21 de febrero de 2015

Validar entrada de numeros enteros y decimales en javascript

Para números decimales por ejemplo 22.33   y  .44  , sólo acepta números y un punto
function onKeyDecimal(e,thix) {
        var keynum = window.event ? window.event.keyCode : e.which;
        if (document.getElementById(thix.id).value.indexOf('.') != -1 && keynum == 46)
            return false;
        if ((keynum == 8 || keynum == 48 || keynum == 46))
            return true;
        if (keynum <= 47 || keynum >= 58) return false;
        return /\d/.test(String.fromCharCode(keynum));
    }

Para validar número enteros, es decir sin puntos el siguiente método que sólo acepta números

function justNumbers(e) {
            var keynum = window.event ? window.event.keyCode : e.which;
            if ((keynum == 8 || keynum == 48))
                return true;
            if (keynum <= 47 || keynum >= 58) return false;
            return /\d/.test(String.fromCharCode(keynum));
        }

Para utilizarlos agrega el  evento keyprees a tu  caja de texto

<asp:TextBox ID="txtTalla"    MaxLength="3"  onkeypress="return justNumbers(event);" runat="server"></asp:TextBox>

Noten como  en el evento que validar los números decimales se requiere de el  parámetros this que nos ayuda a conocer el contenido  de la caja de texto

<asp:TextBox ID="txtPrecioCompra" onkeypress="return onKeyDecimal(event,this);" Width="80px"   MaxLength="8" runat="server"></asp:TextBox>