js行号显示的文本框实现效果(兼容多种浏览器 )

利用js打造的一个非常实用简易的文本编辑框,可以显示行号并且同时兼容ie和firefox等主流浏览器,如下效果图:

以下是该效果的源码:

<html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8">
<title>显示行号的文本框效果,兼容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">请在这里粘入多段字看一看。
</textarea>
  </td>
  </tr>
</table>
</div>
<em class="block" id="msg2">文本框没有内容。</em>
<script type="text/javascript">
var msgA=["msg1","msg2","msg3","msg4"];
var c=["c1","c2","c3","c4"];
var slen=[50,20000,20000,60];//允许最大字数
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("填写错误,请查看提示信息!");
  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如何实现行号显示的文本框效果的源代码,希望对大家的学习有所帮助。

(0)

相关推荐

  • js点击文本框后才加载验证码实例代码

    经常到各大网站去留言或者发帖的朋友应该知道现在很多网站的留言地方的验证码不是直接显示的.而是在点击验证码输入框之后才会显示出来验证码的.下面作者也总结了一篇关于如何利用js实现点击文本框然后再加载验证码的效果的. 废话不多说了,下面是具体的实现代码. <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title

  • js点击文本框弹出可选择的checkbox复选框

    本文分享一段代码实例,它能够点击文本框的时候,能够弹出下拉的checkbox复选框,选中复选框就能够将值写入文本框中,可能在实际应用中的效果没有这么直白简单,不过可以作为一个例子演示,以便于学习者理解和扩展. 代码如下: <html> <head> <meta charset="gb2312"> <title>js点击文本框弹出可选择的checkbox复选框</title> <style type="text/

  • js文本框走动跑马灯效果代码分享

    本文实例讲述了js实现文本框走动跑马灯效果.分享给大家供大家参考.具体如下: 运行效果图: 小提示:直接复制下面分享的代码即可运行,大家可以自定义文字. 为大家分享的js实现文本框走动跑马灯效果代码如下 <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> <title>文本框走动跑马灯代码</title> </

  • js如何实现点击标签文字,文字在文本框出现

    js实现点击标签文字,文字出现在文本框里,下面2种方法实现的功能略有不同,总体来说方法一功能更强大. 第一种方法:随意点击任何标签都会出现在文本框中,如何第二次点击标签,对应的文字就会在文本框中消失. <style>.c{ width:40px; height:25px; line-height:25px; text-align:left; margin:2px; float:left; font-size:12px; cursor:pointer }</style> <in

  • js判断文本框输入的内容是否为数字

    如何验证文本框中的内容是否为数字,本文提供了三种方法,希望对大家的学习有所启发. 在某些情况下可能需要让文本框中的内容只能够输入数字,例如手机号码或者邮编之类的,下面简单介绍一下如何实现此功能. 下面是验证数字的正则表达式: "^\\d+$" //非负整数(正整数 + 0) "^[0-9]*[1-9][0-9]*$" //正整数 "^((-\\d+)|(0+))$" //非正整数(负整数 + 0) "^-[0-9]*[1-9][0-9]

  • js实现文本框输入文字个数限制代码

    通常情况下,文本框输入的文字个数并不是无限制的,一般都会限定一个输入最高上限,较为人性化的网站可能会有可输入字数倒计效果,比如还剩余20可以输入这样的提示,下面就通过一个实例介绍一下如何实现此效果. 先看看效果图: 代码如下: <html> <head> <title>文本框输入文字倒计效果代码</title> <style type="text/css"> * { margin:0; padding:0; } .box {

  • js计算文本框输入的字符数

    使用JavaScript实时的计算用户当前输入的字符数函数代码: <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>JavaScript统计字符数</title> <script language="javascript"> function C

  • JavaScript文本框脚本编写的注意事项

    在HTML中,有两种方式来表现文本框: 一种是使用input元素的单行文本,另一种是使用textarea的多行文本框. 使用input方式,必须添加type,设置为"text". size特性,可以指定文本框内能够显示的字符数. value属性可以设置文本框的初始值. maxlength特性则是用于指定文本框内可以接受的最大字符数. textarea的初始值则必须放在开始和结束标签之内. cols是文本框字符行数: rows是文本框字符列数: 另外,不能在HTML中给textarea指

  • js文本框输入内容智能提示效果

    本文实例讲述了js文本框输入内容智能提示效果代码.分享给大家供大家参考.具体如下: 运行效果截图如下: 大体思路: 1.监听文本框事件.这里是用的keyup事件.大家可以尝试用onchange事件.不过感觉keyup事件的效果要好一点. 2.根据输入内容通过ajax异步的方式去访问后台数据. 3.遍历返回数据将数据添加到显示区域. 4.在添加数据的同时给每一条数据加上一些效果,点击其中一条将数据填到文本框,并且提示内容消失. 5.后台数据应该拼接成json格式. 具体代码如下: <!DOCTYP

  • javascript特殊文本输入框网页特效

    本文实例为大家分享了特殊js文本输入框网页特效,供大家参考,具体内容如下 实例一:让文本框只带有下划线 <script type="text/javascript"> function changeTextStyle(){ //让文本框只带有下划线 //获得文本框的DOM var myText = document.getElementById("myText"); myText.style.borderColor = 'black'; //设置边框颜色

随机推荐