Функция jQuery.val() очищает '\ r\n' от textarea - почему?

Я использую $("#text").val() для получения текста из поля textarea и отправки через ajax, но разрывы строк (я имею в виду \r\n в textarea) вообще исчезает... Почему это могло быть и как предотвратить это?

Спасибо!

Ответы

Ответ 1

Взято из документации для val():

Примечание. В настоящее время использование .val() для элементов textarea. возвращайте символы из значения, указанного в браузере. Когда это значение равно отправляется на сервер через XHR, однако возврат каретки сохраняется (или добавленные браузерами, которые не включают их в исходное значение). обходной путь для этой проблемы может быть достигнут с помощью valHook следующим образом:

$.valHooks.textarea = {
  get: function( elem ) {
      return elem.value.replace( /\r?\n/g, "\r\n" );
  } };

Добавление вышеприведенного фрагмента в ваш javascript переопределит поведение по умолчанию val() для текстовых областей и сохранит пробелы.

См. здесь jsFiddle.