基于jQuery的計(jì)算文本框字?jǐn)?shù)的代碼
1.用戶邊輸入計(jì)算同時(shí)進(jìn)行,告訴用戶還剩余多少可輸入的字?jǐn)?shù);
2.當(dāng)超過(guò)規(guī)定的字?jǐn)?shù)后,點(diǎn)擊確定,會(huì)讓輸入框閃動(dòng)
二、功能分析
1.重點(diǎn)是用什么事件?
標(biāo)準(zhǔn)瀏覽器用oninput,而IE則使用onpropertychange ,這兩個(gè)事件的發(fā)生條件,是文本框的值發(fā)生改變。
2.字?jǐn)?shù)的計(jì)算。
2.1一個(gè)中文算兩個(gè),一個(gè)符號(hào)或數(shù)字,英文,算一個(gè)。(如果是規(guī)定140個(gè)字,乘以2,那么就是280個(gè))
2.2需要用到Math.ceil方法,因?yàn)樽詈筮€是要除以2來(lái)還原顯示給用戶的字?jǐn)?shù);
3.閃動(dòng)背景色
這里用到了模運(yùn)算,因?yàn)槭侵貜?fù)的動(dòng)作,第一次有顏色,第二次沒(méi)有顏色,這樣重復(fù)的動(dòng)作,就有閃動(dòng)效果.
因?yàn)槿庋垡吹竭@二次有顏色和無(wú)顏色的效果,所以需要用到延時(shí),setTimeout和setInterval. 這里用到的是setInterval,因?yàn)橐貜?fù)動(dòng)作。
感謝“妙味課堂”的視頻
在線演示:http://demo.jb51.net/js/2012/myinputCount/
打包下載:http://www.dhdzp.com/jiaoben/55149.html

$(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("您還可以輸入的字?jǐn)?shù)<span>140</span>");
}
})
$tex.blur(function(){
if($tex.val() == ""){
$("p").html("請(qǐng)?jiān)谙旅孑斎肽奈淖郑?);
}
})
//文本框字?jǐn)?shù)計(jì)算和提示改變
if(ie){
$tex[0].oninput = changeNum;
}else{
$tex[0].onpropertychange = changeNum;
}
function changeNum(){
//漢字的個(gè)數(shù)
str = ($tex.val().replace(/\w/g,"")).length;
//非漢字的個(gè)數(shù)
abcnum = $tex.val().length-str;
total = str*2+abcnum;
if(str*2+abcnum<maxNum || str*2+abcnum == maxNum){
$but.removeClass()
$but.addClass("but");
texts =Math.ceil((maxNum - (str*2+abcnum))/2);
$("p").html("您還可以輸入的字?jǐn)?shù)<span>"+texts+"</span>").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("您輸入的字?jǐn)?shù)超過(guò)了<span>"+texts+"</span>").children("span").css({"color":"red"});
}
}
//按鈕點(diǎn)擊
$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")
}
}
})
})
- 基于HTML+CSS,jQuery編寫的簡(jiǎn)易計(jì)算器后續(xù)(添加了鍵盤監(jiān)聽)
- 一個(gè)簡(jiǎn)單的jQuery計(jì)算器實(shí)現(xiàn)了連續(xù)計(jì)算功能
- jquery精度計(jì)算代碼 jquery指定精確小數(shù)位
- jQuery實(shí)現(xiàn)根據(jù)生日計(jì)算年齡 星座 生肖
- jQuery實(shí)現(xiàn)購(gòu)物車計(jì)算價(jià)格功能的方法
- jQuery實(shí)現(xiàn)購(gòu)物車多物品數(shù)量的加減+總價(jià)計(jì)算
- jQuery計(jì)算textarea中文字?jǐn)?shù)(剩余個(gè)數(shù))的小程序
- Jquery AJAX 用于計(jì)算點(diǎn)擊率(統(tǒng)計(jì))
- js數(shù)值計(jì)算時(shí)使用parseInt進(jìn)行數(shù)據(jù)類型轉(zhuǎn)換(jquery)
- jQuery實(shí)現(xiàn)的簡(jiǎn)單在線計(jì)算器功能
相關(guān)文章
基于jquery fly插件實(shí)現(xiàn)加入購(gòu)物車拋物線動(dòng)畫效果
在購(gòu)物網(wǎng)站中,加入購(gòu)物車的功能是必須的功能,有的網(wǎng)站在用戶點(diǎn)擊加入購(gòu)物車按鈕時(shí),就會(huì)出現(xiàn)該商品從點(diǎn)擊出以拋物線的動(dòng)畫相似加入購(gòu)物車,這個(gè)功能看起來(lái)非常炫,對(duì)用戶體驗(yàn)也有一定的提高。下面介紹基于jquery fly插件實(shí)現(xiàn)加入購(gòu)物車拋物線動(dòng)畫效果2016-04-04
jQuery插件jsonview展示json數(shù)據(jù)
這篇文章主要為大家詳細(xì)介紹了jQuery插件jsonview展示json數(shù)據(jù)的方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-05-05
jQuery+css3實(shí)現(xiàn)文字跟隨鼠標(biāo)的上下抖動(dòng)
這篇文章主要介紹了jQuery+css3實(shí)現(xiàn)文字跟隨鼠標(biāo)的上下抖動(dòng)的相關(guān)資料,需要的朋友可以參考下2015-07-07
jQuery開源組件BootstrapValidator使用詳解
這篇文章主要為大家詳細(xì)介紹了jQuery開源組件BootstrapValidator的使用方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-06-06
jquery實(shí)現(xiàn)紅色豎向多級(jí)向右展開的導(dǎo)航菜單效果
這篇文章主要介紹了jquery實(shí)現(xiàn)紅色豎向多級(jí)向右展開的導(dǎo)航菜單效果,涉及jquery鼠標(biāo)hover事件結(jié)合class樣式動(dòng)態(tài)添加與刪除的技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-08-08
jquery顯示loading圖片直到網(wǎng)頁(yè)加載完成的方法
這篇文章主要介紹了jquery顯示loading圖片直到網(wǎng)頁(yè)加載完成的方法,涉及jquery頁(yè)面加載與動(dòng)畫效果的使用技巧,需要的朋友可以參考下2015-06-06
使用jquery獲取網(wǎng)頁(yè)中圖片高度的兩種方法
使用jquery獲取網(wǎng)頁(yè)中圖片的高度其實(shí)很簡(jiǎn)單,目前有兩種不錯(cuò)的方法可以實(shí)現(xiàn),下面為大家詳細(xì)介紹下,有所疑惑的你可以參考下2013-09-09
JQuery實(shí)現(xiàn)左右滾動(dòng)菜單特效
這篇文章主要介紹了jquery實(shí)現(xiàn)左右滑動(dòng)菜單效果代碼,涉及jquery鼠標(biāo)事件相關(guān)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-09-09

