none
Botón que solo acepte números ASPNET MVC5 RRS feed

  • Pregunta

  • Buenas, estoy realizando una vista con MVC5 y lo que intento hacer es una caja de texto que solo acepte números , para esto intento hacerlo mediante jquery.

    Es mi primera vista que hago haciendo pruebas con mvc5 , la he ejecutado en google chrome y no veo que me de errores en la consola , me gustaria recibir consejos sobre si el código JS esta bien en esta parte o debe ir fuera del archivo .cshtml

    @model PagedList.IPagedList<testProject.Models.Articulos>
    @using PagedList.Mvc;
    
    <script type="text/javascript">
    $(document).ready(function () {
        $("#txtCantidad").keydown(function (event) {
            alert('ok');
            if (event.shiftKey) {
                event.preventDefault();
            }
            if (event.keyCode == 46 || event.keyCode == 8) {
            }
            else {
                if (event.keyCode < 95) {
                    if (event.keyCode < 48 || event.keyCode > 57) {
                        event.preventDefault();
                    }
                }
                else {
                    if (event.keyCode < 96 || event.keyCode > 105) {
                        event.preventDefault();
                    }
                }
            }
        });
    });
    </script>
    
    
    
    <link href="~/Content/PagedList.css" rel="stylesheet" type="text/css" />
    
    @{
        ViewBag.Title = "Test";
    }
    
    
    
    
    <h2>TPV...</h2>
    
    
    @using (Html.BeginForm("Index", "TPV", FormMethod.Get))
    {
        <p>
            Descripción : @Html.TextBox("SearchString", ViewBag.CurrentFilter as string)
            <input type="submit" value="Search" /><br />
        </p>
    
        @Html.TextBox("txtCantidad","1", new { @id = "txtCantidad" })<br />
    }

    Gracias,

    domingo, 8 de enero de 2017 20:17

Respuestas

  • Hola golfgti6,

    Es necesario hacerlo manualmente ?

    Ya que podrías asignar el input type="number" para que permita valores numéricos, o podrías usar una de las tantas librerías que existen, tales como :

    jQuery Plugin – Numeric

    jStepper

    Si lo quieres hacer manualmente podrías usar la función isNumeric() de jQuery 3.

    jQuery.isNumeric()

    El cual devuelve 'true' si el valor es numérico. Un ejemplo sencillo sería :

    - Html

    <input type="text" name="" id="txtCantidad" maxlength="8"/>

    - jQuery

    $('#txtCantidad').on('keypress', function(e){
       if(!$.isNumeric(String.fromCharCode(e.which))){
          e.preventDefault();
        }
    });

    Saludos.


    JC NaupaCrispín
    Lima - Perú

    La magia no existe, la programación SI

    • Marcado como respuesta golfgti6 domingo, 8 de enero de 2017 23:09
    domingo, 8 de enero de 2017 21:53

Todas las respuestas

  • Otra duda muy similar , este código intento hacer que cuando se pulse una tecla en el  salte un alert de JS , este código tampoco seria correcto?

      @Html.TextBox("test33","test33", new { onkeydown = "function(e){if(e.keyCode > 0) alert('ok') }" })

    Gracias,

    domingo, 8 de enero de 2017 20:35
  • Hola golfgti6,

    Es necesario hacerlo manualmente ?

    Ya que podrías asignar el input type="number" para que permita valores numéricos, o podrías usar una de las tantas librerías que existen, tales como :

    jQuery Plugin – Numeric

    jStepper

    Si lo quieres hacer manualmente podrías usar la función isNumeric() de jQuery 3.

    jQuery.isNumeric()

    El cual devuelve 'true' si el valor es numérico. Un ejemplo sencillo sería :

    - Html

    <input type="text" name="" id="txtCantidad" maxlength="8"/>

    - jQuery

    $('#txtCantidad').on('keypress', function(e){
       if(!$.isNumeric(String.fromCharCode(e.which))){
          e.preventDefault();
        }
    });

    Saludos.


    JC NaupaCrispín
    Lima - Perú

    La magia no existe, la programación SI

    • Marcado como respuesta golfgti6 domingo, 8 de enero de 2017 23:09
    domingo, 8 de enero de 2017 21:53
  • Hola golfgti6,

    Es necesario hacerlo manualmente ?

    Ya que podrías asignar el input type="number" para que permita valores numéricos, o podrías usar una de las tantas librerías que existen, tales como :

    jQuery Plugin – Numeric

    jStepper

    Si lo quieres hacer manualmente podrías usar la función isNumeric() de jQuery 3.

    jQuery.isNumeric()

    El cual devuelve 'true' si el valor es numérico. Un ejemplo sencillo sería :

    - Html

    <input type="text" name="" id="txtCantidad" maxlength="8"/>

    - jQuery

    $('#txtCantidad').on('keypress', function(e){
       if(!$.isNumeric(String.fromCharCode(e.which))){
          e.preventDefault();
        }
    });

    Saludos.


    JC NaupaCrispín
    Lima - Perú

    La magia no existe, la programación SI

    Ok gracias , tienes razón creo que me esta dando un error de jquery


    Gracias,

    • Editado golfgti6 domingo, 8 de enero de 2017 23:09
    domingo, 8 de enero de 2017 23:00