.replace() является только временным, javascript

#jquery #forms

#jquery #формы

Вопрос:

Я создаю страницу форума и сейчас формирую раздел комментариев. Поскольку, когда вы нажимаете return, введите n в текстовой области, результат такого текста:
A
A
A
заканчивается как ‘A A A’ . Я отправляю этот текст в базу данных, поэтому я должен выполнить эту функцию перед отправкой. Поэтому я использовал onsubmit в форме и направил его в следующую функцию:

  function ClearText() {
    $('#CommentBox').val().replace(/n/g,'<br>');
    console.log($('#CommentBox').val());
  

Когда я делаю это вручную на консоли, я вижу, что он фактически преобразует теги новой строки в теги br. Однако, когда я запускаю этот код, $(‘#CommentBox’).val() вообще не меняется.
Есть ли другой способ вызова функции перед отправкой? Или есть способ сделать это .replace() постоянным изменением? Заранее благодарю вас!

Ответ №1:

Теперь вы получаете только значение, вы должны установить значение,

  function ClearText() {
     $('#CommentBox').val($('#CommentBox').val().replace(/n/g, '<br>'));
     console.log($('#CommentBox').val());
 }
  

Ответ №2:

.replace() не заменит фактическое значение, но вернет замененное значение указанными символами. Вам нужно сохранить его в переменной, а затем установить его снова

 function ClearText() {
     var replaceVal = $('#CommentBox').val().replace(/n/g,'<br>');
   $('#CommentBox').val(replaceVal )
    console.log($('#CommentBox').val());
}
  

Ответ №3:

попробуйте это

 function ClearText() {
       $('#CommentBox').val($('#CommentBox').val().replace(/n/g,'<br>'))
       console.log($('#CommentBox').val());
    }
  

Комментарии:

1. Хотя этот блок кода может ответить на вопрос, было бы лучше, если бы вы могли дать небольшое объяснение, почему он это делает.