通過JQuery的keyup事件: 代碼如下:
<html>
<head>
<title>JQuery為textarea添加maxlength</title>
<script type="text/javascript" src="jquery-1.4.js"></script>
</head>
<body>
<textarea style="width:300px; height:60px;" maxlength="10"></textarea>
</body>
</html>
<script type="text/javascript">
$(function(){
$("textarea[maxlength]").keyup(function(){
var area=$(this);
var max=parseInt(area.attr("maxlength"),10); //獲取maxlength的值
if(max>0){
if(area.val().length>max){ //textarea的文本長度大於maxlength
area.val(area.val().substr(0,max)); //截斷textarea的文本重新賦值
}
}
});
});
</script>
如果只用keyup只能判斷鍵盤輸入的maxlength,利用鼠標的粘貼還是可以超過maxlength的限制,可以利用blur事件做判斷:
代碼如下:
$("textarea[maxlength]").blur(function(){
var area=$(this);
var max=parseInt(area.attr("maxlength"),10); //獲取maxlength的值
if(max>0){
if(area.val().length>max){ //textarea的文本長度大於maxlength
area.val(area.val().substr(0,max)); //截斷textarea的文本重新賦值
}
}
});
失去焦點後截斷textarea的文本。
通過blur事件判斷後還是有問題,如果是粘貼後直接提交而沒有做對textarea的長度驗證的情況下,還是會把textarea的全部內容提交。