php文本框限制内容_jQuery计算文本框字数及限制文本框字数的方法_jquery

本文介绍了如何利用jQuery实现一个文本框,动态计算用户输入的字符数量,包括中文双倍计数,英文及符号按一个计算,并在超过140字时触发闪烁提示。使用Math.ceil确保字数准确显示,通过延时和模运算实现输入框颜色的交替闪烁效果。
摘要由CSDN通过智能技术生成

一个中文算两个,一个符号或数字,英文,算一个。(如果是规定140个字,乘以2,那么就是280个)。需要用到Math.ceil方法,因为最后还是要除以2来还原显示给用户的字数;

2e3ed301680164ddb296e6f6c292249c.png

$(function(){

var $tex = $(".tex");

var $but = $(".but");

var ie = jQuery.support.htmlSerialize;

var str = 0;

var abcnum = 0;

var maxNum = 280;

var texts= 0;

var num = 0;

var sets = null;

$tex.val("");

//顶部的提示文字

$tex.focus(function(){

if($tex.val()==""){

$("p").html("您还可以输入的字数140");

}

})

$tex.blur(function(){

if($tex.val() == ""){

$("p").html("请在下面输入您的文字:");

}

})

//文本框字数计算和提示改变

if(ie){

$tex[0].oninput = changeNum;

}else{

$tex[0].onpropertychange = changeNum;

}

function changeNum(){

//汉字的个数

str = ($tex.val().replace(/\w/g,"")).length;

//非汉字的个数

abcnum = $tex.val().length-str;

total = str*2+abcnum;

if(str*2+abcnum"+texts+"").children().css({"color":"blue"});

}else if(str*2+abcnum>maxNum){

$but.removeClass("")

$but.addClass("grey");

texts =Math.ceil(((str*2+abcnum)-maxNum)/2);

$("p").html("您输入的字数超过了"+texts+"").children("span").css({"color":"red"});

}

}

//按钮点击

$but.click(function(){

if($(this).is(".grey")){

sets = setInterval(flash,100);

$tex.addClass("textColor")

}

function flash(){

num++;

if(num == 4){

clearInterval(sets);

}

if(num%2 == 1){

$tex.addClass("textColor")

}else{

$tex.removeClass("textColor")

}

}

})

})

一、功能:

用户边输入计算同时进行,告诉用户还剩余多少可输入的字数;

当超过规定的字数后,点击确定,会让输入框闪动

二、功能分析

重点是用什么事件?

标准浏览器用oninput,而IE则使用onpropertychange ,这两个事件的发生条件,是文本框的值发生改变。

字数的计算。

一个中文算两个,一个符号或数字,英文,算一个。(如果是规定140个字,乘以2,那么就是280个)。需要用到Math.ceil方法,因为最后还是要除以2来还原显示给用户的字数;

闪动背景色

这里用到了模运算,因为是重复的动作,第一次有颜色,第二次没有颜色,这样重复的动作,就有闪动效果.

因为肉眼要看到这二次有颜色和无颜色的效果,所以需要用到延时,setTimeout和setInterval. 这里用到的是setInterval,因为要重复动作。

下面一段代码给大家介绍用jQuery实现限制输入字数的文本框。

1.导入外部.js文件:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值