0

我需要某种指导,说明如何只允许将 int 或 float 输入到表单输入字段中。验证必须发生在按键事件上。我遇到的问题是,例如,在输入时,1.2keyup 事件函数中的检查会看到1.哪个不是数字。

这是我的代码:

document.id('inputheight').addEvent('keyup', function(e) {
    this.value = this.value.toFloat();
    if (this.value == 'NaN') {
        this.value = 0;
    }         
});

任何帮助表示赞赏!

4

1 回答 1

1

您可以简单地清理 keyup 上字段的值。这样的事情应该可以解决问题:

this.value = this.value.replace(/([^\d.]+)?((\d*\.?\d*)(.*)?$)/, "$3");

正则表达式立即用它遇到的第一个数字字符串替换该值。

([^\d.]+)?  // optionally matches anything which is not
            // a number or decimal point at the beginning

(\d*\.?\d*) // tentatively match any integer or float number

(.*)?$      // optionally match any character following
            // the decimal number until the end of the string
于 2012-07-19T11:55:52.097 回答