基于jQuery的计算文本框字数的代码_jquery

js教程评论1.3K views阅读模式

一、功能:

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

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

二、功能分析

  1.重点是用什么事件?

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

  2.字数的计算。

    2.1一个中文算两个,一个符号或数字,英文,算一个。(如果是规定140个字,乘以2,那么就是280个)

    2.2需要用到Math.ceil方法,因为最后还是要除以2来还原显示给用户的字数;

  3.闪动背景色

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

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

感谢“妙味课堂”的视频

在线演示:http://demo.jb51.net/js/2012/myinputCount/
打包下载:http://www.jb51.net/jiaoben/55149.html

基于jQuery的计算文本框字数的代码_jquery

复制代码 代码如下:

$(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
$but.removeClass()

$but.addClass("but");

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

$("p").html("您还可以输入的字数
"+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")

}

}

})

})

企鹅博客
  • 本文由 发表于 2019年8月31日 01:12:54
  • 转载请务必保留本文链接:https://www.qieseo.com/423897.html

发表评论