Работаю над проектом для моей школы по созданию приложения MVC Sinatra. Я хочу создать веб-приложение, которое может сохранять и отображать фрагменты / алгоритмы с помощью редактора ace.
Я понял, как (по-видимому) захватить ввод формы через редактор ace, скрыв поле ввода и присвоив значение из ace при изменении с помощью фрагмента ниже.
//CAPTURE/SET VALUE
var textarea = $('input[name = "content"]');
editor.getSession().on("change", function () {
textarea.val(editor.getSession().getValue());
});
моя форма выглядит так
<!--ACE EDITOR-->
<div id = "editor"></div>
To open settings panel, inside editor - CTRL+Q (Windows) | CMD+Q (Mac)
<!--------------------------------------------------------->
<!--FORM-->
<form action = "/ace" method = "POST">
<!--normal-->
<input type = "text" name = "content" style = "display: none;" />
<!--submit-->
<input type = "submit" value = "Save">
</form>
Я могу зафиксировать параметры в порядке, но проблема в том, что они не сохраняют разрывы строк, поэтому ввод ...
def something
end
в редактор ace и нажав "Отправить", я вернусь
"def something end"
когда я хотел бы теоретически получить что-то вроде
"def something\n\nend"
или что-то в этом роде .. вы уловили дрейф
Мне нужно каким-то образом использовать редактор для захвата ввода, а при отправке назначить его атрибуту объекта, так что псевдо
snippet = Snippet.new(:content => params[:content])
затем иметь возможность перезвонить и отобразить в редакторе в правильном формате
snippet.content (preserves linebreaks)
Полный код и изображения ЗДЕСЬ, если вам больше нравится визуальные эффекты. Любая помощь будет принята с благодарностью, и если я что-то упускаю, пожалуйста, дайте мне знать ... надеюсь, я предоставил достаточно информации и подробно изложил ее.
вы можете показать мне пример того, что вы имеете в виду? если это то, что я думаю, вы имеете в виду, я уже пробовал это и получил обратно этот i.imgur.com/tgIYXOg.png
Я также пробовал textarea.val(editor.getSession().getValue().split("\n").join("\n")); в js, прежде чем устанавливать значение ввода, оно работает в консоли браузера, но при отправке на ввод все еще возвращается без перерывов



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


input не принимает символы новой строки, вместо этого вам нужно использовать textarea.
Привет, извините за поздний ответ .. Я попытался использовать textarea, но затем я сделал редактор ace, который больше не отображается. Я нашел обходной путь, я добавлю ответ, когда у меня будет возможность, но вот мое репо, если вы хотите взглянуть на то, что я сделал, и / или проверить, что происходит при изменении ввода в репозиторий textarea: github.com/AlphaDaniel/snalgos
Я думаю, что получение значения из сеанса также обеспечивает \ n (новый разрыв строки) ... просто разделите на \ n и проверьте, получили ли вы что-то или нет.