当前位置: 代码迷 >> JavaScript >> textarea框中的文字处理解决办法
  详细解决方案

textarea框中的文字处理解决办法

热度:100   发布时间:2012-03-14 12:01:13.0
textarea框中的文字处理
textarea框 有这么一段内容:
尊敬的客户:<c_date><c_netvalue>,欢迎登陆查询账户信息。祝您周末愉快!

现要对textarea框 中的内容进行编辑,内容不一定是上面的固定内容,要求:
1、:<c_date><c_netvalue> 这种用<>引起来的是宏,不允许修改
2、不允许输入< > 这种符号。

我该如何去实现呢?哪位高手请给出答案。

------解决方案--------------------
下面是还原法,有个小问题就是要闪一下,光标也会跑到最后。。。。
HTML code
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title>无标题页</title>
</head>
<body><textarea rows="5" cols="50" id="ta"><c_date><c_netvalue> 这种用<>引起来的是宏,不允许修改</textarea>
<script type="text/javascript">
var hong=[],ta;
function killGTLT(e){
  e=e||window.event;
  if(e.keyCode==188||e.keyCode==190)e.preventDefault?e.preventDefault():e.returnValue=0;
}
function gtlt(arr1,arr2){
  var ok=true;
  if(arr1.length==arr2.length){
    for(var i=0;i<arr1.length;i++)if(arr1[i]!=arr2[i]){ok=false;break;}
  }
  else ok=false;
  return ok;
}
function isOK(){
  if(gtlt(this.value.match(/<[a-z_]+>/ig),hong))ta.setAttribute('ov',ta.value);
  else ta.value=ta.getAttribute('ov')
}
window.onload=function(){
  ta=document.getElementById('ta');
  ta.onkeydown=killGTLT;
  ta.onkeyup=isOK;
  hong=ta.value.match(/<[a-z_]+>/ig);
  ta.setAttribute('ov',ta.value);
}
</script>
</body>
</html> 
  相关解决方案