如果文本输入字段超过X个字符,则禁用某些键?

时间:2011-12-02 13:10:39

标签: jquery

$('.licensetable :text').live('keydown', function (event) {
    if ((event.keyCode < 48 || event.keyCode > 57) && (event.keyCode < 96 || event.keyCode > 105) && (event.keyCode != 8)) {
        event.preventDefault();
    }
});

我只允许数字。这有效。但如果我记录

$(this).val().length

显然“一步到位”。如果我绑定了keyup事件,我会得到正确的数字。但后来我无法禁用按键事件。我的目标是在输入一定数量的数字后禁用输入。希望你明白这个主意。感谢

2 个答案:

答案 0 :(得分:6)

您只需在输入字段中设置属性maxlength='X'即可。

<强> See it in action

答案 1 :(得分:-1)

您可以使用输入字段的maxlength属性,这样用户就无法输入更多的字符(希望我能正确理解您的问题)

然后,如果要在达到maxlength时禁用输入,则可以执行以下操作:

$('input:text').live('keydown', function(event) {

    if ((event.keyCode < 48 || event.keyCode > 57) && (event.keyCode < 96 || event.keyCode > 105) && (event.keyCode != 8)) {
        event.preventDefault();
    }
    var maxlength = $(this).attr('maxlength');
    if (this.value.length == maxlength) {
        $(this).prop('disabled', true);
    }

});

在这里小提琴:http://jsfiddle.net/nicolapeluchetti/2YmAG/