我们有 textarea ,它应该只允许300个字符。我们可以通过任何键盘按下事件使用
来控制它onkeydown="limitText(this,300);"
onkeyup="limitText(this,300);
其中limitText
如下
limitText = function (limitField, limitNum) {
if (limitField.value.length > limitNum) {
limitField.value = limitField.value.substring(0, limitNum);
}
},
但我们无法通过此控制 mouseClick 粘贴....请分享任何想法。 请注意:我在互联网上检查了几个解决方案,但无法解决。我知道这是一个小问题,但作为 jQuery 的新手(实际上是整个网络世界),我无法在正确的位置ping ...
答案 0 :(得分:5)
要处理所有输入现代浏览器oninput
event
以下是使用此事件执行操作的示例:
$('.limited').bind('input',function() {
var $t=$(this);
var max=$t.data('maxchars');
if ($t.val().length>max) {
$t.val($t.val().substr(0,max));
}
});
对于旧浏览器,您应该使用keyup,keydown + onpaste:
$('.limited').bind('keyup keydown paste',function(e) {
var $t=$(this);
setTimeout(function(){
var max=$t.data('maxchars');
if ($t.val().length>max) {
$t.val($t.val().substr(0,max));
}
},0);
});
答案 1 :(得分:2)
通过javascript控制textarea的长度并不是一个真正的智能解决方案,因为HTML已经支持开箱即用:)
http://www.w3schools.com/tags/att_textarea_maxlength.asp
<textarea maxlength="50">
Enter text here...
</textarea>
我不是100%确定这是一个旧功能还是由HTML5发明的。 Imho它已经可用,因为一些修订。但w3schools说它是textareas的新品。
PS:这是我一个月前写的:https://github.com/sdepold/jquery.char-counter。它基本上是观察插入文本区域的字符数量,并切断过多的一切。你也得到一个炭柜台。
PPS:jquery.char-counter的演示:http://jsfiddle.net/TBDue/