2015-10-23 3 views
4

Как установить диапазон между 0 и 99 на номер типа ввода? Я использую атрибуты HTML5 (min="0" max="99"), но он не работает, и насколько я знаю, этот тип атрибутов не поддерживается некоторыми браузерами.Разрешить только 2 номера ввода типа номер

Поэтому я использую этот скрипт, который блокирует нечисловые символы, но я хочу ограничить число до 99 (всего 2 цифры). Как я могу это сделать?

Также я хочу, чтобы пользователи могли использовать клавиатуру для ввода чисел.

$(".js-number").numeric(); 

jsFiddle

+3

мин = "2" макс = "2" простой атрибут HTML5 – CodeLove

+0

@CodeLove, не работает .. – Rayon

+0

'$ ("JS-номер.") Цифровой();.' Любую библиотеку? – Tushar

ответ

2

Ваш пример работает, если вы удалите $ Числовой() ("JS-номер."). ;
Но вы можете редактировать ввод.
атрибут maxlength работает с текстом типа ввода, поэтому, по-моему, проверка javascript неизбежна.

<input type="number" class="js-number" min="0" max="99" value="0"> 
<script> 
    $(".js-number").bind('keydown', function(e){ 
     var targetValue = $(this).val(); 
     if (e.which ===8 || e.which === 13 || e.which === 37 || e.which === 39 || e.which === 46) { return; } 

     if (e.which > 47 && e.which < 58 && targetValue.length < 2) { 
      var c = String.fromCharCode(e.which); 
      var val = parseInt(c); 
      var textVal = parseInt(targetValue || "0"); 
      var result = textVal + val; 

      if (result < 0 || result > 99) { 
      e.preventDefault(); 
      } 

      if (targetValue === "0") { 
      $(this).val(val); 
      e.preventDefault(); 
      } 
     } 
     else { 
      e.preventDefault(); 
     } 
    }); 
</script> 
+0

Это не работает: http://jsfiddle.net/brunodd/gnLz004r/6/ – brunodd

+0

Работает. Вы не можете редактировать его нажатием клавиш, только нажав стрелки ввода – Sagi

+0

Но это не идеально. Я хочу разрешить пользователям вводить номер с клавиатуры. – brunodd

0

вы можете установить, как это:

<input type="text" class="js-number" maxlength="2"> 
+0

тип входного номера? – Rayon

+0

http://stackoverflow.com/questions/8354975/how-to-add-maxlength-for-html5-input-type-number-element –

+0

Вы уверены, что этот вход будет принимать только числа? – Rayon

1
<input class="test-input" type="number" maxlength="12" /> 
<script> 
$('.test-input').unbind('keyup change input paste').bind('keyup change input paste',function(e){ 
    var $this = $(this); 
    var val = $this.val(); 
    var valLength = val.length; 
    var maxCount = $this.attr('maxlength'); 
    if(valLength>maxCount){ 
     $this.val($this.val().substring(0,maxCount)); 
    } 
}); 
</script> 
Смежные вопросы