文本输入只允许三个单词用空格分隔,如果超过3,用户就不能再输入了,这是否可以使用jQuery?我可以使用keyup事件来监听,但是如何在不使用禁用的情况下阻止用户输入更多的令牌.这类似于html中输入文本的本机maxlength属性,除了在这种情况下maxLength是标记的数量.
检查输入是否已有3个单词,并且他们正在尝试输入空格.如果是这样返回false:
$('#myTextbox').keydown( function(event) { var input = $(this).val(); var numberOfWords = input.split(' ').length; if(numberOfWords == 3 && event.keyCode == 32) { return false; } } );
编辑: 还有一个问题是有人可能会在该字段中通过文本.作为跨浏览器解决方案,我可能会将类似于@ karim79的代码绑定到blur事件.
$('#myTextbox').blur( function(e) { var tokens = $(this).val().split(' '); if(tokens.length > 3) { $(this).val(tokens.slice(0,3).join(' ')); } } );