Есть мое текущее решение для числового ввода, нужно тестировать в разных браузерах, но, похоже, работает
Поддержка запятой и разделителя точек (чешский - запятая), ввод пробелов и чисел / клавиатуры. Разрешить Ctrl + C Ctrl + A или Ctrl + X, навигацию по стрелкам и удалить блок Ctrl + V. Реагируйте на клавишу выхода, размывая ввод.
Смотри мой сценарий Кофе:
(($) ->
$.fn.onlyNumbers = ->
@each ->
$(@).keydown (e) ->
# get code of key
code = if e.keyCode then e.keyCode else e.which
return $(@).blur() if code is 27 # blur on escape
return if code in [46, 8, 9, 13] # 46, 8, 9, 27, 13 = backspace, delete, tab, escape, and enter
return if (e.ctrlKey or e.metaKey) and code in [65, 67, 88] # ctrl|command + [a, c, x]
return if code in [96..105] # numpad numbers
return if code in [48..57] # numbers on keyboard
return if code in [35..39] # 35..39 - home, end, left, right
return if code in [188, 190, 32] # comma, period, space
return if code in [44] # comma, period,
e.returnValue = false # IE hate you
e.preventDefault();
$(@).keypress (e) ->
code = if e.keyCode then e.keyCode else e.which
return if code in [44, 46, 32] # comma, period, space
return if code in [48..57] # numbers on keyboard
e.returnValue = false # IE hate you
e.preventDefault();
) jQuery
Вы можете получить скомпилированный Javascript здесь http://goo.gl/SbyhXN