Разрешение просто Числового текста на Входном Текстовом поле

Я использовал JQuery Числовой плагин, но я нашел, что это не работает над FireFox 3.6 на Osx (не позволяет вставлять).

Я ищу плагин JQuery или отрывок JavaScript, который позволяет просто Числовой текст на Входном Текстовом поле.
У меня есть следующие требования:

  1. Должен позволить просто числовой текст
  2. Не должен позволять пунктуацию (.),
  3. Не должен позволять подчеркнутый штриховой линией текст (-)
  4. Должен позволить вставлять только для числового текста
  5. Мультибраузер
  6. Многоплатформенный

8
задан systempuntoout 14 April 2011 в 07:27
поделиться

2 ответа

Благодаря dev-null-dweller я решил проблему с помощью этого скрипта:

jQuery('#input').bind('keyup blur',function(){ 
   jQuery(this).val( jQuery(this).val().replace(/[^0-9]/g,'') ); }
);
5
ответ дан 5 December 2019 в 14:00
поделиться

ДЕМО: http://so.devilmaycode.it/allowing-just-numeric-text-on-input-text-field/

jQuery.fn.onlyDigits = function() {
    var k;
    // little trick just in case you want use this:
    $('<span></span>').insertAfter(this);
    var $dText = $(this).next('span').hide();
    // Really cross-browser key event handler
    function Key(e) {
        if (!e.which && ((e.charCode ||
        e.charCode === 0) ? e.charCode: e.keyCode)) {
        e.which = e.charCode || e.keyCode;
        } return e.which; }
    return $(this).each(function() {
        $(this).keydown(function(e) {
            k = Key(e);
            return (
            // Allow CTRL+V , backspace, tab, delete, arrows,
            // numbers and keypad numbers ONLY
            ( k == 86 && e.ctrlKey ) || (k == 86 && e.metaKey) || k == 8 || k == 9 || k == 46 || (k >= 37 && k <= 40 && k !== 32 ) || (k >= 48 && k <= 57) || (k >= 96 && k <= 105));
        }).keyup(function(e) {
            var value = this.value.replace(/\s+/,'-');
            // Check if pasted content is Number
            if (isNaN(value)) {
                // re-add stored digits if CTRL+V have non digits chars
                $(this).val($dText.text());
            } else { // store digits only of easy access
                $dText.empty().append(value);
            }
        });
    });
};

ИСПОЛЬЗОВАНИЕ:

$("#onlydigits").onlyDigits();

ПРИМЕЧАНИЕ :

спасибо Insider за указание на прошлое (cmd + v) для MAC


обработчика ключевых событий ССЫЛКИ:

7
ответ дан 5 December 2019 в 14:00
поделиться
Другие вопросы по тегам:

Похожие вопросы: