jquery文本输入长度控制

use*_*196 4 jquery

文本输入只允许三个单词用空格分隔,如果超过3,用户就不能再输入了,这是否可以使用jQuery?我可以使用keyup事件来监听,但是如何在不使用禁用的情况下阻止用户输入更多的令牌.这类似于html中输入文本的本机maxlength属性,除了在这种情况下maxLength是标记的数量.

Jat*_*aro 8

检查输入是否已有3个单词,并且他们正在尝试输入空格.如果是这样返回false:

$('#myTextbox').keydown(
    function(event)
    {
        var input = $(this).val();
        var numberOfWords = input.split(' ').length;
        if(numberOfWords == 3 && event.keyCode == 32)
        {
            return false;
        }
    }
);
Run Code Online (Sandbox Code Playgroud)

编辑: 还有一个问题是有人可能会在该字段中通过文本.作为跨浏览器解决方案,我可能会将类似于@ karim79的代码绑定到blur事件.

$('#myTextbox').blur(
    function(e)
    {
        var tokens = $(this).val().split(' ');
        if(tokens.length > 3) 
        {
            $(this).val(tokens.slice(0,3).join(' '));
        }
    }
);
Run Code Online (Sandbox Code Playgroud)