验证输入类型编号html

时间:2013-05-07 06:32:26

标签: jquery coffeescript

请参阅http://jsbin.com/oqujuf/1/edit

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

当我在输入中写一个字母时打印为空,如何在输入内输入字母时删除字母,我试着这样做:

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

但是不起作用,因为只要我写信,那里的值就会返回空。

更新

我用这种方式:

if !@value then @value = ''

这很有效。但我现在的问题是,我希望验证只删除字母,我该怎么做?

还有另一个问题:假设我使用5到50的范围,如果我想写15,只要我写1值消失,你会如何解决这2个问题?

1 个答案:

答案 0 :(得分:1)

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

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

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

jsbin在这里:http://jsbin.com/idukin/7/edit