验证输入类型编号html



参见http://jsbin.com/oqujuf/1/edit

$('input').keyup -> console.log @value

打印空当我在输入中写一个字母,我怎么能删除字母,因为它们是输入内的类型,我正在尝试这个:

@value = @value.replace(/D/, '')

但是它不工作,因为只要我写一个字母,那里的值返回空

<标题> 更新

我是这样用的:

if !@value then @value = ''

这工作。但我现在的问题是,我想要验证只删除字母怎么做呢?

还有另一个问题:假设我使用一个从5到50的范围,如果我想写15,一旦我写了一个值消失,你怎么解决这两个问题?

解决这个问题的一种方法,如果我理解正确的话,是通过拒绝任何不匹配数字的键码和其他一些键(如删除键、制表键和箭头键)来限制字段中的字符,如下所示:

$ ->
  $('input').keypress (e)->
    acceptedKeys = ([8,9].concat [48..57]).concat [46]
    unless (e.which in acceptedKeys)
      return false

注意使用keypress事件而不是keyup。如果要接受小数,可能还需要包含.字符键码(46)。这种方法的一个缺点是,它还会阻止使用键盘快捷键将值粘贴到字段中,但是允许使用鼠标使用上下文菜单粘贴任何字符。

jsbin here: http://jsbin.com/idukin/7/edit

最新更新