首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >javascript文本框换行

javascript文本框换行
EN

Stack Overflow用户
提问于 2010-06-29 02:13:34
回答 2查看 4.4K关注 0票数 0

我有一个文本框,可以让用户按回车键。当它们按enter键时,我检查输入并将回车符替换为\n。但是,它仍然会向我的数据库发送一个回车。会出什么问题呢?

代码如下:

代码语言:javascript
代码运行次数:0
运行
复制
var pp = comment.value;  
alert(pp.replace(/\r?\n|\r/g, "\n"));  
comment.value =  pp.replace(/\r?\n|\r/g, "\n");  

在我的数据库中,我仍然得到回车字符,即使我正在替换它。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-06-29 04:10:43

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

代码语言:javascript
代码运行次数:0
运行
复制
<!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>
票数 1
EN

Stack Overflow用户

发布于 2010-06-29 03:13:23

这是一个用纯javascript实现的例子,但是如果你使用像jquery这样的东西,它会干净得多。

代码语言:javascript
代码运行次数:0
运行
复制
<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>
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3134997

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档