比onChange更早捕获输入,最好只有数字

时间:2012-03-08 23:32:04

标签: javascript jquery html forms

我有一个输入字段表。该表格将由没有经验的用户使用,所以我想为最坏的情况做好准备。

我创建了一些代码,一旦输入字段发生变化,就会突出显示表格行。这里的缺点是用户在输入字段外单击后会触发代码。

我希望实现以下目标。

  • 一旦用户输入内容,偶数被触发,在每个数字后,输入/退格等。此事件将突出显示表格行。稍后我想扩展此函数以在本地自动保存表单,但我稍后会找出相应的代码。
  • 其次,它是一种价格形式,所以如果用户只能输入数字
  • 就会很棒

他们将使用的浏览器具有完整的html5和css3支持,作为JavaScript引擎,我使用最新版本的jQuery。

PS。如果对此有任何不利之处,请告诉我。

2 个答案:

答案 0 :(得分:5)

使用keyup事件,输入的值将在此事件触发时更新,但您可以在用户blur元素之前更改该值。

更新

您可以使用正则表达式将输入限制为仅数字:

//bind to the `keyup` event for all `input` element(s)
$('input').on('keyup', function () {

    //replace the value of this input by only the digits in it's value
    //note that this method works even if the user pastes a block of text into the input
    this.value = this.value.replace(/[^0-9]/gi, '');
});​

以下是演示:http://jsfiddle.net/bKsTG/1/

答案 1 :(得分:2)

使用keyup事件,并检查event.keyCode值以检查它是否为数字,输入/ backspace

$('selector').keyup(function(event){
   if (event.keyCode in [48,49, 50 .... 57,13]){ /* your code*/ };
});