textarea 输入框限制字数(完美兼容)

在input标签中,只需要设置maxlength=”***”即可,但是在textarea标签中,IE9及IE9以下浏览器是不支持的,IE10、IE11则支持,估计后续的版本应该都会支持。

现在来说下怎么让大部分IE版本都支持textarea 标签限制字数。

<textarea id="taContent" rows="3"  maxlength="20" onchange="this.value=this.value.substring(0, 20)" onkeydown="this.value=this.value.substring(0, 20)" onkeyup="this.value=this.value.substring(0, 20)" ></textarea>

这样子即可。

备注:onchange、onkeydown、onkeyu三者缺一不可。

如省略onchange,当你用负责功能,此时一直按着ctrl不松开,鼠标去点击其他地方(焦点移出textarea)时,不会自动取消超出部分;

如省略onkeydown,猛敲的时候会有很多个字符突然不见了;

如省略onkeyup,原想预计20的情况下,会变成21,并且最后一个字符是最后敲进去的。

Maxlength 也不可省略,加上maxlength 当碰到IE10及以上版本时,可以完美的实现限制输入框字数的功能。不想其他低版本的IE浏览器还可以出现一个字母后消失。


 

本文档由八邑网络 Thylx 提供,转载请注明出处:http://www.thylx.net/newsdetail.aspx?id=37

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<title>cp_teachcp</title>
<meta name="description" content="">
<meta name="keywords" content="">
<script src="http://g.tbcdn.cn/mtb/lib-flexible/0.3.4/??flexible_css.js,flexible.js"></script>
<script type="text/javascript" src="js/jquery-3.2.1.min.js"></script>
<script type="text/javascript" src="js/cp_item.js"></script>
<link rel="stylesheet" type="text/css" href="css/cp_item.css">
</head>
<body>
    <div class="teach_cp">
		<h2>学员信息:胡闹闹</h2>
		<div class="tcp_text">评语:</div>
		<div class="tcp_box">
			<textarea class="tcp_content" maxlength="200" onchange="this.value=this.value.substring(0,200)" 
onkeydown="this.value=this.value.substring(0,200)" onkeyup="this.value=this.value.substring(0,200)"></textarea> <p class="pl_tcp">请输入学员身体综合评测结果</p> <span class="t_h"><i>0</i>/200</span> </div> <div class="tcp_submit">提交</div> </div> </body> </html>

  

	$(".tcp_content").focus(function(){
		if($(this).val()==""){
			$(".tcp_box p").css('display','none')
		}
		
	}).blur(function(){
		if($(this).val()==""){
			$(".tcp_box p").css('display','block')
		}else{
			$(".tcp_box p").css('display','none')
		}
		
	})
     $(".pl_tcp").click(function(){
        $(this).css('display','none');
        $(".tcp_content").focus();
     })
	$(".tcp_content").change(function(){
		$(".t_h i").html($(".tcp_content").val().length)
	})
	$(".tcp_content").keydown(function(){
		$(".t_h i").html($(".tcp_content").val().length)
	})
	$(".tcp_content").keyup(function(){
		$(".t_h i").html($(".tcp_content").val().length)
	})

  

原文地址:https://www.cnblogs.com/jvziking/p/7986791.html