2012-02-17 4 views
0

Что я хочу сделать, так это настроить расширенную функцию jquery, которая не допускает номера в текстовых окнах. Это то, что у меня есть:Расширение jquery с разрешенными номерами

$.fn.onlyNumbers = function(evt) { 
    var e = event || evt; // for trans-browser compatibility 
    var charCode = e.which || e.keyCode; 

    if (charCode > 31 && (charCode < 48 || charCode > 57)) 
     return false; 

    return true; 
} 

Это правильно? Как это назвать, когда это расширенная функция и заставить ее делать то же самое?

ответ

3

Я не думаю, что вы поняли, как работает плагин jQuery.

Ваша функция вызывается с , являющимся объектом jQuery, на который была вызвана функция. Внутри этой функции вам необходимо зарегистрировать событие keypress для обработки этих символов - о, и вам не нужен какой-либо конкретный код для браузера, поскольку jQuery выполняет эту роль для вас.

Попробуйте это:

$.fn.onlyNumbers = function() { 
    return this.keypress(function(e) { 
     if (e.which > 31 && (e.which < 48 || e.which > 57)) { 
      e.preventDefault(); 
     } 
    }); 
} 
0

Что делать, если кто-то вставит число в? Более пуленепробительно проверять значение текстового поля на клавиатуре и заменять его числовой версией этого значения (регулярное выражение, кто-нибудь?).

+0

Звучит скорее как комментарий для меня. – kapa