замена новой строки текстового поля javascript - PullRequest
0 голосов
/ 28 июня 2010

У меня есть текстовое поле, которое позволяет пользователям нажимать ввод.Когда они нажимают ввод, я проверяю ввод и заменяю возврат каретки на \n.Однако он по-прежнему отправляет в мою базу данных возврат каретки.Что может быть не так?

Вот код:

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

, и в моем БД я все еще получаю символ возврата каретки, даже если заменяю его.

Ответы [ 2 ]

1 голос
/ 29 июня 2010

Если вы установите обработчик onsubmit в своей форме, вы сможете изменить содержимое элемента textarea перед его отправкой.Затем вы можете использовать метод replace, чтобы изменить каждый \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>
1 голос
/ 28 июня 2010

Вот пример, который делает это в чистом 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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...