Javascript / JQuery - Проверка с плавающей точкой? - PullRequest
2 голосов
/ 04 февраля 2011

У меня есть текстовое поле, в которое человек может ввести цену (XX.xx).Есть ли способ убедиться, что после десятичной дроби они вводят не более 2 цифр?

Ответы [ 4 ]

2 голосов
/ 10 июля 2014

Вот основные типы проверки.

$(document).ready(function(){
//for numeric integer only
var num_int_Exp = /^[0-9]+$/;
$("body").on("keypress", ".custom_numeric_int", function(e){
        var keynum;
            if(window.event){ // IE
                keynum = e.keyCode;
            }else
            if(e.which){ // Netscape/Firefox/Opera                  
                    keynum = e.which;
            }
            if(!String.fromCharCode(keynum).match(num_int_Exp))
            {
                return false;
            }
            return true;
});

//for numeric float only
$("body").on("keypress", ".custom_numeric_float", function(e){
    //$('.custom_numeric_float').keypress(function(event)
        //alert($(this).val().indexOf("."));
        if ($(this).val().indexOf(".") > -1 && event.which == 46) {
            return false;
        }

        if ((event.which != 46) && (event.which < 48 || event.which > 57)) {
            event.preventDefault();
        }
});


//for character input
var charExp = /^[a-zA-Z]+$/;
$("body").on("keypress", ".custom_char", function(e){
            var keynum;
            if(window.event){ // IE
                keynum = e.keyCode;
            }else
            if(e.which){ // Netscape/Firefox/Opera                  
                    keynum = e.which;
            }
            if(!String.fromCharCode(keynum).match(charExp))
            {
                return false;
            }
            return true;
});

//for alpha-numeric input
var alphaExp = /^[a-zA-Z0-9]+$/;
$("body").on("keypress", ".custom_alphanumeric", function(e){
            var keynum;
            if(window.event){ // IE
                keynum = e.keyCode;
            }else
            if(e.which){ // Netscape/Firefox/Opera                  
                    keynum = e.which;
            }
            if(!String.fromCharCode(keynum).match(alphaExp))
            {
                return false;
            }
            return true;
});});

Теперь дайте соответствующий класс вашему текстовому полю, и вы закончили проверку. Надеюсь, это поможет.

1 голос
/ 04 февраля 2011

Код для десятичной позиции:

<input type="text" class="price" value="" />

$('.price').keydown(function() {
    var decPos = $(this).val().split('.'); 
    if(decPos.length > 1)
    {
        decPos = decPos[1];
        if(decPos.length >= 2) return false;
    }
});

Проверка информации об адресе, вероятно, найдена здесь - http://docs.jquery.com/Plugins/validation

1 голос
/ 04 февраля 2011

Я думаю, что лучший выбор - использование регулярных выражений. Подробнее .

Для десятичных примеров:

var decimal = /\.\d\d$/;
1 голос
/ 04 февраля 2011

Вы можете решить проблему с ценой ввода с помощью Маскируемого входного плагина .На веб-сайте jQuery есть и другие.

Проверка данных может быть выполнена в отношении формата и содержимого.Когда вы закончите в формате, вы можете использовать jQuery validate плагин .Для формата я бы использовал веб-сервис для адресов, но для штата и страны вы могли бы предоставить выпадающий список (input-select) с обязательным выбором.

Почтовый индекс, например, отличается для каждой страны, поэтому вы должны сделать это зависимымна выбор страны;)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...