为我的学校建立一个MVC Sinatra应用程序的项目。我想创建一个可以使用ace编辑器保存和显示片段/算法的Web应用程序。
我想通过隐藏输入字段并通过下面的代码片段在更改时分配来自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>
我可以很好地捕获params,但问题是它不会保留换行符,所以进入......
def something
end
进入ace编辑器并点击提交给我回复
"def something end"
当我在理论上喜欢得到像
这样的东西时"def something\n\nend"
或类似的东西......你得到漂移
我需要能够以某种方式使用编辑器捕获输入,并在提交时将其分配给对象属性,以便伪
snippet = Snippet.new(:content => params[:content])
然后能够回拨并以正确的格式显示在编辑器上
snippet.content (preserves linebreaks)
完整代码和图片HERE,如果您更喜欢视觉效果。 任何帮助将不胜感激,如果有什么我错过了请告诉我..希望我已经提供了足够的信息和详细的正确。
答案 0 :(得分:1)
输入不接受换行符,您需要使用textarea。