jQuery計(jì)算文本框字?jǐn)?shù)及限制文本框字?jǐn)?shù)的方法
一個(gè)中文算兩個(gè),一個(gè)符號(hào)或數(shù)字,英文,算一個(gè)。(如果是規(guī)定140個(gè)字,乘以2,那么就是280個(gè))。需要用到Math.ceil方法,因?yàn)樽詈筮€是要除以2來還原顯示給用戶的字?jǐn)?shù);

$(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ù)超過了<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")
}
}
})
})
一、功能:
用戶邊輸入計(jì)算同時(shí)進(jìn)行,告訴用戶還剩余多少可輸入的字?jǐn)?shù);
當(dāng)超過規(guī)定的字?jǐn)?shù)后,點(diǎn)擊確定,會(huì)讓輸入框閃動(dòng)
二、功能分析
重點(diǎn)是用什么事件?
標(biāo)準(zhǔn)瀏覽器用oninput,而IE則使用onpropertychange ,這兩個(gè)事件的發(fā)生條件,是文本框的值發(fā)生改變。
字?jǐn)?shù)的計(jì)算。
一個(gè)中文算兩個(gè),一個(gè)符號(hào)或數(shù)字,英文,算一個(gè)。(如果是規(guī)定140個(gè)字,乘以2,那么就是280個(gè))。需要用到Math.ceil方法,因?yàn)樽詈筮€是要除以2來還原顯示給用戶的字?jǐn)?shù);
閃動(dòng)背景色
這里用到了模運(yùn)算,因?yàn)槭侵貜?fù)的動(dòng)作,第一次有顏色,第二次沒有顏色,這樣重復(fù)的動(dòng)作,就有閃動(dòng)效果.
因?yàn)槿庋垡吹竭@二次有顏色和無顏色的效果,所以需要用到延時(shí),setTimeout和setInterval. 這里用到的是setInterval,因?yàn)橐貜?fù)動(dòng)作。
下面一段代碼給大家介紹用jQuery實(shí)現(xiàn)限制輸入字?jǐn)?shù)的文本框。
1.導(dǎo)入外部.js文件:
<script src="http://static.l99.com/js/jquery/jquery-1.2.6.pack.js" type="text/javascript"></script>
2.在<body>標(biāo)簽中加入如下代碼:
<body>
還可以輸入<span id="word">140</span>個(gè)字<br />
<textarea id="txt" name="" cols="" rows=""></textarea>
<script language="javascript" type="text/javascript">
$("#txt").keyup(function(){
if($("#txt").val().length > 140){
$("#txt").val( $("#txt").val().substring(0,140) );
}
$("#word").text( 140 - $("#txt").val().length ) ;
});
</script>
</body>
3.如果頁面加載時(shí)輸入框中有默認(rèn)文本,那么要在頁面加載時(shí)運(yùn)行如下jQuery代碼,方能正確顯示:
$("#word").text( 140 - $("#txt").val().length ) ;
- 基于jQuery實(shí)現(xiàn)仿微博發(fā)布框字?jǐn)?shù)提示
- jquery實(shí)現(xiàn)textarea輸入框限制字?jǐn)?shù)的方法
- jQuery計(jì)算textarea中文字?jǐn)?shù)(剩余個(gè)數(shù))的小程序
- jquery限制輸入字?jǐn)?shù),并提示剩余字?jǐn)?shù)實(shí)現(xiàn)代碼
- 基于jQuery的計(jì)算文本框字?jǐn)?shù)的代碼
- 基于jquery的textarea發(fā)布框限制文字字?jǐn)?shù)輸入(添加中文識(shí)別)
- 基于jquery的inputlimiter 實(shí)現(xiàn)字?jǐn)?shù)限制功能
- jQuery maxlength文本字?jǐn)?shù)限制插件
- JQuery 表單中textarea字?jǐn)?shù)限制實(shí)現(xiàn)代碼
- 文本框的字?jǐn)?shù)限制功能jquery插件
- 基于JQuery的數(shù)字改變的動(dòng)畫效果--可用來做計(jì)數(shù)器
- jQuery實(shí)現(xiàn)簡(jiǎn)易的輸入框字?jǐn)?shù)計(jì)數(shù)功能示例
相關(guān)文章
jQuery實(shí)現(xiàn)判斷上傳圖片類型和大小的方法示例
這篇文章主要介紹了jQuery實(shí)現(xiàn)判斷上傳圖片類型和大小的方法,結(jié)合實(shí)例形式分析了jQuery針對(duì)上傳圖片屬性獲取、判定相關(guān)操作技巧,需要的朋友可以參考下2018-04-04
jQuery實(shí)現(xiàn)的淡入淡出二級(jí)菜單效果代碼
這篇文章主要介紹了jQuery實(shí)現(xiàn)的淡入淡出二級(jí)菜單效果代碼,涉及jQuery中fadeIn及fadeOut的相關(guān)使用技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-09-09
學(xué)習(xí)從實(shí)踐開始之jQuery插件開發(fā) 對(duì)話框插件開發(fā)
之所以寫下這篇文章,是想將我的想法分享給大家;對(duì)于初學(xué)者,我希望他能從這篇文章中獲取對(duì)他有用的東西,對(duì)于經(jīng)驗(yàn)豐富的開發(fā)者,我希望他能指出我的不足,給我更多的意見和建議;目的就是共同進(jìn)步2012-04-04
使用jQuery的ajax方法向服務(wù)器發(fā)出get和post請(qǐng)求的方法
這篇文章主要介紹了使用jQuery的ajax方法向服務(wù)器發(fā)出get和post請(qǐng)求的方法,需要的朋友可以參考下2017-01-01
jquery ajax 如何向jsp提交表單數(shù)據(jù)
ajax技術(shù)在做表單數(shù)據(jù)傳值非常棒,給用戶帶來很好的用戶體驗(yàn)度,同時(shí),使用jquery可以簡(jiǎn)化開發(fā),提高效率。下面給大家介紹jquery ajax 如何向jsp提交表單數(shù)據(jù),需要的朋友可以參考下2015-08-08
jQuery實(shí)現(xiàn)點(diǎn)擊自身以外區(qū)域關(guān)閉彈出層功能完整示例【改進(jìn)版】
這篇文章主要介紹了jQuery實(shí)現(xiàn)點(diǎn)擊自身以外區(qū)域關(guān)閉彈出層功能,結(jié)合具體實(shí)例形式分析了jQuery事件響應(yīng)及頁面元素屬性動(dòng)態(tài)操作實(shí)現(xiàn)彈出層打開與關(guān)閉相關(guān)操作技巧,需要的朋友可以參考下2018-07-07

