textarea文本框实现字数监控--propertychange input

本文介绍如何使用JavaScript结合textarea元素的propertychange和input事件,实现实时监测并限制文本框输入字数的功能,确保用户输入不超过预设限制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、页面文本框:

<textarea rows="3" cols="20" name="packagingDesc" id="packagingDesc" 
	style="border: 1px solid #dbdbdb;width: 520px;vertical-align: text-top;">${logInfo.packagingDesc }</textarea>
<p class="qi">剩余:<span id="text-count" style="color: #F60;">512</span>字符,建议填写包装形式、尺寸,各类集装箱能装载的产品件数等信息,便于买家了解。</p>

2、判断是否有汉字和特殊符号:

// 常规包装
		$("#text-count").text(512-$("#packagingDesc").val().trim().length);
		
		$("#packagingDesc").blur(function(){
			var packagingDesc = $(this).val().trim();
			if(packagingDesc != ""){


				var str = validateFun(packagingDesc);
				if(str != ""){
					$("#packagingDesc_info").show();
					$("#packagingDesc_error").text(str);
				}else{
					$("#packagingDesc_info").hide();
					$("#packagingDesc").css("border-color","#dcdcdc");
				}
			}else{
				$("#packagingDesc_info").hide();
			}
		});

function validateFun(key){
		var pattern_chin = /[\u4e00-\u9fa5]/g; //汉字的正则表达式
		var patter_special_char = /[﹤﹥;,《》ØαβγδεπνξρσηθλτφψωΔΣ:。、¥()——【】:‘’“”?¤§゜¨·×÷ˇˉˊˋ˙ΓΔΘΞ∏∑ΥΦΨ℅№℡′〃※ъыюя―‖¨′〃£¥¤¢]+/;
		var str = "";
		var matchResult = key.match(pattern_chin);
		var matchResultSpecial = key.match(patter_special_char);
		if(matchResult != null && matchResultSpecial != null){
			str = "请不要输入如下非英文字符:"+matchResult.join("")+matchResultSpecial.join("");
		}else if(matchResult != null && matchResultSpecial == null){
			str = "请不要输入如下非英文字符:"+matchResult.join("");
		}else if(matchResult == null && matchResultSpecial != null){
			str = "请不要输入如下非英文字符:"+matchResultSpecial.join("");
		}
		return str;
	}
3、字数限制的监控方法:

/*字数限制*/
	    $("#packagingDesc").on("propertychange input", function() {
	        var $this = $(this),
	            _val = $this.val(),
	            count = "";
	        if (_val.length > 512) {
	            $this.val(_val.substring(0, 512));
	        }
	        count = 512 - $this.val().length;
	        $("#text-count").text(count);
	    });

4、如果要求换行占两个字符:

/*字数限制*/
	    $("#packagingDesc").on("propertychange input", function() {
	        var $this = $(this),
	         _val = $this.val(),
	    	r=_val.match(/\s/gi),
	    	haveInput = _val.length;
	    	if(r!=null){
	    		haveInput = haveInput + r.length;
	    	}
	    	
	        if (haveInput > 512) {
	            $this.val(_val.substring(0, 512));
	        }
	        $("#text-count").text(512 - haveInput);
	    });


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值