js行號(hào)顯示的文本框?qū)崿F(xiàn)效果(兼容多種瀏覽器 )
利用js打造的一個(gè)非常實(shí)用簡(jiǎn)易的文本編輯框,可以顯示行號(hào)并且同時(shí)兼容ie和firefox等主流瀏覽器,如下效果圖:

以下是該效果的源碼:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8">
<title>顯示行號(hào)的文本框效果,兼容ie、火狐等瀏覽器</title>
<style type="text/css">
#main{color:#666}
textarea{border:1px solid #7f9db9;font-size:9pt;width:430px;color:#000}
.grey{color:#999}
#msg1,#msg2,#msg3,#msg4{ display:none}
#ol{position:absolute;z-index:1;padding:0px;margin:0px;border:0px;background:#ecf0f5;width:23px;text-align:left; }
#li{background:#ecf0f5;height:160px;overflow:hidden;width:32px;border-right:0;line-height:20px;margin:0px;padding:0px;text-align:center}
#c2{font-family:Arial, Helvetica, sans-serif;height:160px; margin:0px; width:416px;padding:0 0 0 35px;overflow-x: hidden;line-height:20px;}
</style>
<script type="text/javascript">
String.prototype.trim2=function(){
return this.replace(/(^\s*)|(\s*$)/g, "");
}
function F(objid){
return document.getElementById(objid).value;
}
function G(objid){
return document.getElementById(objid);
}
</script>
</head>
<body onLoad="keyUp();">
<div>
<table width="100%" border="0" cellspacing="0" cellpadding="0" style="position:relative">
<tr>
<td width="55%">
<div id="ol"><textarea cols="2" rows="10" id="li" disabled></textarea></div>
<textarea name="co" cols="60" rows="10" wrap="off" id="c2" onblur="check('2')" onKeyUp="keyUp()" onFocus="clearValue('2')" onscroll="G('li').scrollTop=this.scrollTop;" oncontextmenu="return false" class="grey">請(qǐng)?jiān)谶@里粘入多段字看一看。
</textarea>
</td>
</tr>
</table>
</div>
<em class="block" id="msg2">文本框沒(méi)有內(nèi)容。</em>
<script type="text/javascript">
var msgA=["msg1","msg2","msg3","msg4"];
var c=["c1","c2","c3","c4"];
var slen=[50,20000,20000,60];//允許最大字?jǐn)?shù)
var num="";
var isfirst=[0,0,0,0,0,0];
function isEmpty(strVal){
if( strVal=="" )
return true;
else
return false;
}
function isBlank(testVal){
var regVal=/^\s*$/;
return (regVal.test(testVal))
}
function chLen(strVal){
strValstrVal=strVal.trim2();
var cArr=strVal.match(/[^\x00-\xff]/ig);
return strVal.length+(cArr==null ? 0 : cArr.length);
}
function check(i){
var iValue=F("c"+i);
var iObj=G("msg"+i);
var n=(chLen(iValue)>slen[i-1]);
if((isBlank(iValue)==true)||(isEmpty(iValue)==true)||n==true){
iObj.style.display ="block";
}else{
iObj.style.display ="none";
}
}
function checkAll(){
for(var i=0;i<msgA.length;i++){
check(i+1);
if(G(msgA[i]).style.display=="none"){
continue;
}else{
alert("填寫(xiě)錯(cuò)誤,請(qǐng)查看提示信息!");
return;
}
}
G("form1").submit();
}
function clearValue(i){
G(c[i-1]).style.color="#000";
keyUp();
if(isfirst[i]==0){
G(c[i-1]).value="";
}
isfirst[i]=1;
}
function keyUp(){
var obj=G("c2");
var str=obj.value;
strstr=str.replace(/\r/gi,"");
strstr=str.split("\n");
n=str.length;
line(n);
}
function line(n){
var lineobj=G("li");
for(var i=1;i<=n;i++){
if(document.all){
num+=i+"\r\n";
}else{
num+=i+"\n";
}
}
lineobj.value=num;
num="";
}
function autoScroll(){
var nV=0;
if(!document.all){
nV=G("c2").scrollTop;
G("li").scrollTop=nV;
setTimeout("autoScroll()",20);
}
}
if(!document.all){
window.addEventListener("load",autoScroll,false);
}
</script>
</body>
</html>
以上就是javascript如何實(shí)現(xiàn)行號(hào)顯示的文本框效果的源代碼,希望對(duì)大家的學(xué)習(xí)有所幫助。
- js點(diǎn)擊文本框彈出可選擇的checkbox復(fù)選框
- JavaScript文本框腳本編寫(xiě)的注意事項(xiàng)
- js實(shí)現(xiàn)文本框輸入文字個(gè)數(shù)限制代碼
- js判斷文本框輸入的內(nèi)容是否為數(shù)字
- js文本框輸入內(nèi)容智能提示效果
- js計(jì)算文本框輸入的字符數(shù)
- js點(diǎn)擊文本框后才加載驗(yàn)證碼實(shí)例代碼
- js文本框走動(dòng)跑馬燈效果代碼分享
- js如何實(shí)現(xiàn)點(diǎn)擊標(biāo)簽文字,文字在文本框出現(xiàn)
- javascript特殊文本輸入框網(wǎng)頁(yè)特效
相關(guān)文章
詳解plotly.js 繪圖庫(kù)入門(mén)使用教程
本篇文章主要介紹了詳解plotly.js 繪圖庫(kù)入門(mén)使用教程,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-02-02
js實(shí)現(xiàn)的文字橫向無(wú)間斷滾動(dòng)
要實(shí)現(xiàn)這樣一個(gè)功能,文字在某塊區(qū)域內(nèi)橫向無(wú)間隙滾動(dòng)。2010-12-12
js實(shí)現(xiàn)簡(jiǎn)單的星級(jí)選擇器提交效果適用于評(píng)論等
星級(jí)選擇器在網(wǎng)上會(huì)搜到很多類似的代碼,不過(guò)實(shí)現(xiàn)起來(lái)相對(duì)比較復(fù)雜,在本文將為大家介紹的是使用js簡(jiǎn)單的實(shí)現(xiàn)下,感興趣的朋友不要錯(cuò)過(guò)2013-10-10
通過(guò)Tabs方法基于easyUI+bootstrap制作工作站
本教程給大家介紹如何制作easyUI+bootstrap工作站,主要學(xué)習(xí)tabs方法,本文介紹非常詳細(xì),具有參考借鑒價(jià)值,需要的朋友參考下吧2016-03-03
JavaScript函數(shù)綁定用法實(shí)例分析
這篇文章主要介紹了JavaScript函數(shù)綁定用法,結(jié)合實(shí)例形式分析了javascript函數(shù)綁定的原理、實(shí)現(xiàn)方法與相關(guān)操作技巧,需要的朋友可以參考下2017-11-11
Javascript設(shè)計(jì)模式理論與編程實(shí)戰(zhàn)之簡(jiǎn)單工廠模式
簡(jiǎn)單工廠模式是由一個(gè)方法來(lái)決定到底要?jiǎng)?chuàng)建哪個(gè)類的實(shí)例, 而這些實(shí)例經(jīng)常都擁有相同的接口. 這種模式主要用在所實(shí)例化的類型在編譯期并不能確定, 而是在執(zhí)行期決定的情況。 說(shuō)的通俗點(diǎn),就像公司茶水間的飲料機(jī),要咖啡還是牛奶取決于你按哪個(gè)按鈕2015-11-11
如何在TypeScript中正確的遍歷一個(gè)對(duì)象
在TypeScript里面,也會(huì)遇到需要遍歷對(duì)象的時(shí)候,下面這篇文章主要給大家介紹了關(guān)于如何在TypeScript中正確的遍歷一個(gè)對(duì)象的相關(guān)資料,需要的朋友可以參考下2022-03-03

