2014-02-07 3 views
0

Я делаю мобильное приложение с кордорой. поэтому мой код должен быть совместим с браузерами android и iosКак получить значение типа входного номера

Мне нужно ограничить длину моего ввода на 3 цифры, которые работают, но я ввожу какие-либо символы без цифр, это не сработает.

Вот мой вход

<input id="age" type="number"> 

Вот мой JS

$("#age").bind("keyup", function (e) { 
      var ageSelector = $('#age'); 

      if (ageSelector.val().length > 3) { 
       ageSelector.val(ageSelector.val().substr(0, 3)); 
      } 
     }); 

http://jsfiddle.net/JSdj8/

Как я могу получить реальное значение в входе? или лучше, как я могу запретить пользователю вводить все символы без цифр?

+0

Что это скрипка? Вы уверены, что разместили правильный? –

+0

Извините, только что изменил его –

ответ

0

Использование isNaN(), который возвращает истину, если это не число, вы можете использовать атрибут maxlength также

<input id="age" type="number" maxlength="3"> 

$("#age").bind("keyup", function (e) { 
    var ageSelector = $('#age'); 
    var val=ageSelector.val(); 
    if(isNaN(parseInt(val))) 
     ageSelector.val(val.substr(0, val.length-1)); 
    if (val.length > 3) { 
     ageSelector.val(val.substr(0, 3)); 
    } 
}); 

Fiddle Demo

+0

Я пробовал это, но не повезло –

+0

Поскольку мне нужно установить тип на номер (чтобы запросить правильную клавиатуру на iOS и Android), значение ввода не будет отображаться на самом деле. Сценарий, который вы опубликовали, не работает, я все еще могу ввести более 3 символов (если они не являются номерами) –

+0

Возможно, вам придется заменить 'if (isNaN (val))' с 'if (isNaN (parseInt (val))) '(isNaN работает странно в строках ..) И даже это не идеально –

Смежные вопросы