Estoy teniendo Bootstrap y tengo un problema con la validación. Necesito de entrada único entero positivo.
Cómo ponerlo en práctica?

Por ejemplo:

<div>                       
    <input type="number" id="replyNumber" data-bind="value:replyNumber" />
</div>
InformationsquelleAutor user2264703 | 2013-05-13

3 Comentarios

  1. 45

    No es Twitter bootstrap específica, es normal HTML5 componente y puede especificar el rango con el min y max atributos (en su caso, sólo el primer atributo). Por ejemplo:

    HTML:

    <div>                       
        <input type="number" id="replyNumber" min="0" data-bind="value:replyNumber" />
    </div>

    No estoy seguro de si sólo enteros están permitidas por defecto en el control o no, pero otra cosa que usted puede especificar el step atributo:

    HTML:

    <div>                       
        <input type="number" id="replyNumber" min="0" step="1" data-bind="value:replyNumber" />
    </div>

    Ahora sólo números más altos (e igual a cero pueden ser utilizados y que está a un paso de 1, lo que significa que los valores son 0, 1, 2, 3, 4, … .

    SER CONSCIENTES de: No todos los navegadores soportan las funciones de HTML5, por lo que es recomendable tener algún tipo de JavaScript de reserva (y en su back-end demasiado) si usted realmente desea utilizar las restricciones.

    Para obtener una lista de los navegadores que lo soportan, se puede ver en caniuse.com.

    • Cómo implementar JavaScript de reserva?
    • El JavaScript de reserva debe agregar un controlador de eventos onChange a su campo de entrada y validar el número de (intentar analizar en un entero primero y, a continuación, comprobar si está por encima de cero).
    • Todavía puedo caracteres de entrada.
    • ¿qué navegador usas? Firefox no permite la entrada de caracteres, sino que marca el campo como válida cuando usted hace. Chrome/Opera no permiten la entrada de caracteres. En IE también debería funcionar. Safari todavía tiene problemas, es verdad que: caniuse.com/#feat=form-validation. Por eso he dicho que necesita una adecuada reserva si hay que apoyar a los navegadores incompatibles.
  2. 12

    Bueno, yo siempre uso la misma manera fácil y funciona para mí.
    En el código HTML de mantener el tipo de texto (como este):

    <input type="text" class="textfield" value="" id="onlyNumbers" name="onlyNumbers" onkeypress="return isNumber(event)" onpaste="return false;"/>

    Después de esto usted sólo tiene que añadir un método javascript

    <script type="text/javascript">     
    function isNumber(evt) {
            evt = (evt) ? evt : window.event;
            var charCode = (evt.which) ? evt.which : evt.keyCode;
            if ( (charCode > 31 && charCode < 48) || charCode > 57) {
                return false;
            }
            return true;
        }
    </script>

    Con esta fácil de validación sólo obtendrá números positivos tal y como quería.
    Usted puede modificar el charCodes para agregar más válida de las claves de su método.

    Heres el código de trabajo: Sólo los números de validación

    • falla en copy&paste
    • estaba a punto de mencionar el mismo que se produce un error al copiar-pegar. Cómo evitar esto, y al mismo tiempo garantizar una entrada numérica sólo?
    • usted puede tratar mediante la adición de este en el botón onpaste=»return false;» Si esto resuelve el problema, hágamelo saber para editar la solución. Gracias de antemano
    • usted puede tratar mediante la adición de este en el botón onpaste=»return false;» Si esto resuelve el problema, hágamelo saber para editar la solución. Gracias de antemano
    • Gracias que trabajó
    • gracias por los comentarios.

  3. 0
    You should use jquery validation because if you use  type="number" then you can also enter "E" character in input type, which is not correct.
    
    Solution:
    
    **HTML**
    
    <input class="form-control floatNumber" name="energy1_total_power_generated" type="text" required="" > 
    
    **JQuery**
    //integer value validation
        $('input.floatNumber').on('input', function() {
            this.value = this.value.replace(/[^0-9.]/g, '').replace(/(\..*)\./g, '$1');
        });

Dejar respuesta

Please enter your comment!
Please enter your name here