rya*_*yan 1 jquery textarea maxlength
我试图把一些似乎很简单的东西放在一起,但由于某种原因我无法return false;正常工作.我试图阻止用户在找到三次"img"之后再输入任何文本.由于return false;某种原因不起作用.除了如何阻止用户输入外,我的所有内容都在我的演示中工作.任何帮助都会很棒.
演示:jsfiddle.net/ryanverdel/2cAeX/
$('#test').keyup(function(e){
var v = $(this).val(),
w = v.split(/\b[\s,\.-:;]*/),
word = 'img',
c = 0;
for (var i=0,len=w.length;i<len;i++){
if (w[i] === word){
c++;
}
if(c == 3){
return false
}
}
$('#output').text(c);
});
Run Code Online (Sandbox Code Playgroud)
使用keyup有点晚了,因为键已被按下:
$('#test').keypress(function(e){
var v = $(this).val(),
w = v.split(/\b[\s,\.-:;]*/),
word = 'img',
c = 0;
for (var i=0,len=w.length;i<len;i++){
if (w[i] === word){
c++;
}
}
if(c == 3){
return false
}
$('#output').text(c);
});
Run Code Online (Sandbox Code Playgroud)
这是一个更简单的方法:
$('#test').on('keypress', function(e){
var word = 'img',
count = this.value.match(new RegExp('\\b'+word+'\\b','g')) || [];
$('#output').text(count.length);
return count.length < 3;
});
Run Code Online (Sandbox Code Playgroud)
编辑:
由于要求似乎是能够使用退格键,因此不能使用keypress,因为它不会注册退格.
然而,keydown会,并且我们可以做一些聪明的魔术:
$('#test').on('keydown', function(e){
var word = 'img',
count = this.value.match(new RegExp('\\b'+word+'\\b','g')) || [];
$('#output').text(count.length);
return !(count.length > 2 && e.which != 8); // 8 is backspace
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
352 次 |
| 最近记录: |