javascript文本框新行替换

javascript文本框新行替换,javascript,javascript-events,Javascript,Javascript Events,我有一个文本框,可以让用户点击回车键。当他们按enter键时,我检查输入并用\n替换回车符。然而,它仍然向我的db发送一个回车。 有什么不对劲吗 代码如下: var pp = comment.value; alert(pp.replace(/\r?\n|\r/g, "\n")); comment.value = pp.replace(/\r?\n|\r/g, "\n"); 在我的db中,即使我正在替换回车符,我仍然会得到回车符。下面是一个用纯javascript实现的示例,但是如

我有一个文本框,可以让用户点击回车键。当他们按enter键时,我检查输入并用
\n
替换回车符。然而,它仍然向我的db发送一个回车。 有什么不对劲吗

代码如下:

var pp = comment.value;  
alert(pp.replace(/\r?\n|\r/g, "\n"));  
comment.value =  pp.replace(/\r?\n|\r/g, "\n");  

在我的db中,即使我正在替换回车符,我仍然会得到回车符。

下面是一个用纯javascript实现的示例,但是如果您使用类似jquery的东西,它会更干净

<html>
<head>
</head>
<body>
<textarea id='txt'></textarea>
<script type='text/javascript'>
    var txtarea = document.getElementById('txt');
    txtarea.onkeypress = keyHandler;
    function keyHandler(e){
        if (document.all) { e = window.event; }
        if (document.layers || e.which) { pressedKey = e.which; }
        if (document.all) { pressedKey = e.keyCode; }
        if(pressedKey == '13'){
            txtarea.value = this.value + '\\n';
            return false;
        }

    }
</script>
</body>
</html>

var txtarea=document.getElementById('txt');
txtarea.onkeypress=keyHandler;
函数keyHandler(e){
如果(document.all){e=window.event;}
如果(document.layers | | e.which){pressedKey=e.which;}
如果(document.all){pressedKey=e.keyCode;}
如果(按键=='13'){
txtarea.value=this.value+'\\n';
返回false;
}
}

如果在表单上设置了
onsubmit
处理程序,则可以在发送之前更改textarea元素的内容。然后,您可以使用该方法将每个
\r
更改为
\n

<!DOCTYPE html>
<html>
 <head>
  <meta charset=utf-8>
  <title>Replace carriage returns in textarea</title>
 </head>
 <body>
  <form id="theForm">
   <textarea id="theTextarea" name="txtarea" rows=10 cols=50></textarea>
   <input type="submit" value="Send">
  </form>
  <script>
   function replace_newlines() {
     var textField = document.getElementById("theTextarea");
     var textString = textField.value;
     textField.value = textString.replace(/\r/g, "\n");
   }

   document.getElementById("theForm").onsubmit = replace_newlines;
  </script>
 </body>
</html>

替换文本区域中的回车
函数替换_换行符(){
var textField=document.getElementById(“theTextarea”);
var textString=textField.value;
textField.value=textString.replace(/\r/g,“\n”);
}
document.getElementById(“theForm”).onsubmit=replace_换行符;

您能澄清一下“保存”是什么意思吗?您指的是数据库、文件、客户端存储还是完全不同的东西?我指的是客户端..在将其发送到数据库之前,您使用的是什么平台?在Firefox 3.6.3/Linux中,我已经只看到行尾的
\n
字符。你的意思是要手动设置
textarea
元素的行间字符吗?我已经在两种不同的浏览器中进行了测试(包括WinXP上的IE6),我根本没有从文本框中获得任何字符。您可能必须在服务器端执行此操作。您正在运行什么类型的数据库/服务器?您正在测试
文档。所有
并得出结论,您正在处理的是IE?这是错误的浏览器检测方式。你宁愿使用。另外,使用
var
在本地声明变量,因为您将覆盖先前声明的
e
现在:
var e=e | | window.event,等等。由于e是函数的一个参数,它已经被“声明”,并且被认为在函数的本地范围内。@Ryan:正确,
e
是,但
pressedKey
不是。。。错过了那个:-)