将输入文本框限制为0或1

时间:2013-08-06 18:27:59

标签: jquery

我编写了这个小脚本,检查用户是否输入了0或1.如果是其他任何内容,则将其更改为0:

$('.lcdnum1').keyup(function(){
    if (!($(this).val()==='0' || $(this).val()==='1')){
        $(this).val('0');
    }
});

我唯一不喜欢的是你首先看到“坏”角色。如果您键入“x”,它会短暂显示“x”,然后它会消失,并被替换为0.

这是我的测试网址,用于演示正在发生的事情: http://sterlingmodular.com/test/plan-series-build.asp?console=PLNUno&woodtrim=TOBA&speakerplatform=SPSA&lcd4=1

如何修改它以使其对用户来说更平滑?即,“坏”角色不应该首先显示出来。谢谢!

3 个答案:

答案 0 :(得分:2)

尝试使用.keydown:

http://api.jquery.com/keydown/

Keyup等待用户从键盘上释放键,这将给你一瞬间的输入。

答案 1 :(得分:2)

只需对您正在使用的事件进行一些调整,您正在使用密钥,这意味着在密钥被释放后,它将运行检查。但是,如果您在释放密钥之前运行检查,您将获得所需的结果。

$('.lcdnum1').keydown(function(){
    if (!($(this).val()==='0' || $(this).val()==='1')){
        $(this).val('0');
    }
});

答案 2 :(得分:1)

$('.lcdnum1').keyup(function(){
    var value = $.trim(this.value);
    if (value != '1' ){
        $(this).val('0');
    }
});

<强> DEMO