JavaScript监控输入框字数变化,超出限制则禁止输入

JavaScript监控输入框字数变化,超出则禁止输入

不废话,给你看看效果:

1.无输入状态:

 

 2.输入三个字符:

3.超出5个后报错:

 

现在粘出代码,首先是html代码:

    <body>
        <div class="weui-cells__title" style="font: '微软雅黑';font-size: 17px;color: black;" align="center">大文本框:</div>
        <div class="weui-cell">
            <textarea class="weui-textarea" id="ActivityParticipationProcess" placeholder="在此处输入内容" rows="5" oninput="OnInput (event,5,'count')" onpropertychange="OnPropChanged (event,5,'count')"></textarea>
            <div class='weui-textarea-counter'><span id="count"></span>/5</div>
        </div>
    </body>

上述html代码中,关键在于OnInput方法和OnPropChanged方法,方法内参数event为主要监听参数,2000为字数限制,"count"为下面那个字数统计的id,传入这三个参数可以使方法被多个页面调用,实现代码复用,减少冗余代码。

现在贴出js部分代码,我是写在一个单独的js文件里面的,此处放在同一页面:

 1 <!-- body 最后 -->
 2     <script src="https://cdn.bootcss.com/jquery/1.11.0/jquery.min.js"></script>
 3     <script src="https://cdn.bootcss.com/jquery-weui/1.2.0/js/jquery-weui.min.js"></script>
 4     <script>
 5         $("#count").html("0");//初始化字数计数器
 6     
 7     /* 此方法兼容大部分浏览器,如:Firefox, Google Chrome, Opera, Safari, Internet Explorer from version 9
 8         监听输入框字数变化*/
 9         function OnInput(event, length, id) {
10 
11             if(event.srcElement.value.length <= length) {
12                 $("#" + id).html(event.srcElement.value.length);
13             } else {
14                 $.toptip("内容过长,最多" + length + "字", 'warning');
15                 /*获取输入框id值*/
16                 var id2 = event.srcElement.id;
17                 /*超出规定长度后禁止继续输入*/
18                 var value = event.srcElement.value.substring(0, length);
19                 $("#" + id2).val(value);
20             }
21 
22         }
23         // 此方法仅适用于IE浏览器
24         function OnPropChanged(event, length, id) {
25 
26             if(event.srcElement.value.length <= length) {
27                 $("#" + id).html(event.srcElement.value.length);
28             } else {
29                 $.toptip("内容过长,最多" + length + "字", 'warning');
30                 /*获取输入框id值*/
31                 var id2 = event.srcElement.id;
32                 /*超出规定长度后禁止继续输入*/
33                 var value = event.srcElement.value.substring(0, length);
34                 $("#" + id2).val(value);
35             }
36 
37         }
38     </script>

 

 现在放出完整页面代码:

 1 <!DOCTYPE html>
 2 <html>
 3     <head>
 4         <meta charset="UTF-8">
 5         <title>监听输入框字数变化</title>
 6         <meta name="viewport" content="width=device-width,initial-scale=1,user-scalable=0">
 7         <!-- head 中 -->
 8         <link rel="stylesheet" href="https://cdn.bootcss.com/weui/1.1.2/style/weui.min.css">
 9         <link rel="stylesheet" href="https://cdn.bootcss.com/jquery-weui/1.2.0/css/jquery-weui.min.css">
10     </head>
11 
12     <body>
13         <div class="weui-cells__title" style="font: '微软雅黑';font-size: 17px;color: black;" align="center">大文本框:</div>
14         <div class="weui-cell">
15             <textarea class="weui-textarea" id="ActivityParticipationProcess" placeholder="在此处输入内容" rows="5" oninput="OnInput (event,5,'count')" onpropertychange="OnPropChanged (event,5,'count')"></textarea>
16             <div class='weui-textarea-counter'><span id="count"></span>/5</div>
17         </div>
18     </body>
19     <!-- body 最后 -->
20     <script src="https://cdn.bootcss.com/jquery/1.11.0/jquery.min.js"></script>
21     <script src="https://cdn.bootcss.com/jquery-weui/1.2.0/js/jquery-weui.min.js"></script>
22     <script>
23         $("#count").html("0");//初始化字数计数器
24     
25     /* 此方法兼容大部分浏览器,如:Firefox, Google Chrome, Opera, Safari, Internet Explorer from version 9
26         监听输入框字数变化*/
27         function OnInput(event, length, id) {
28 
29             if(event.srcElement.value.length <= length) {
30                 $("#" + id).html(event.srcElement.value.length);
31             } else {
32                 $.toptip("内容过长,最多" + length + "", 'warning');
33                 /*获取输入框id值*/
34                 var id2 = event.srcElement.id;
35                 /*超出规定长度后禁止继续输入*/
36                 var value = event.srcElement.value.substring(0, length);
37                 $("#" + id2).val(value);
38             }
39 
40         }
41         // 此方法仅适用于IE浏览器
42         function OnPropChanged(event, length, id) {
43 
44             if(event.srcElement.value.length <= length) {
45                 $("#" + id).html(event.srcElement.value.length);
46             } else {
47                 $.toptip("内容过长,最多" + length + "", 'warning');
48                 /*获取输入框id值*/
49                 var id2 = event.srcElement.id;
50                 /*超出规定长度后禁止继续输入*/
51                 var value = event.srcElement.value.substring(0, length);
52                 $("#" + id2).val(value);
53             }
54
55         }
56     </script>
57 
58 </html>

 第一次写,写的不好或者排版不好看请见谅,有疑问或者建议意见都欢迎留言或者来信:CodeKjm@163.com

转载于:https://www.cnblogs.com/CodeKjm/p/8000863.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值