我使用的是rails形式。在那种形式中,我是text_area。我想在rails的文本区域中显示预填充数据。数据是html内容。
我试过了,
<% test_val= "<h1>Test Value</h1>" %>
<%= form.text_area(:myval, :value => test_val.html_safe, size: '30x10', :style => 'border: 10;') %>
myval
是我的表单变量。但是,不是在文本区域中以粗体和更大的字体打印Test Value
,而是显示<h1>Test Value</h1>
。我希望HTML标记中的内容使用HTML格式打印。可能吗?如果是的话,我该如何实现呢?
p.s。我使用的是ruby v1.9.3&amp; rails 3.1.0
答案 0 :(得分:1)
您可能想要使用所见即所得的编辑器。 我建议你看看
https://github.com/Nerian/bootstrap-wysihtml5-rails
使用simple_form,您可以简单地将其用作:
<%= f.input :content, as: :wysihtml5 %>
答案 1 :(得分:0)
正如我之前所说,你可能应该使用contentEditable
,不幸的是,你将无法使用rails现有助手发送表单,并且必须使用一点Javascript来构建表单,我没有找到真正“干净”的方法,但它有效:
<html>
<head></head>
<body>
<form id="my_form" action="#" method="POST">
<div id="editable_div" contenteditable>
<h1>Editable HTML Content</h1>
</div>
<input type="submit" />
</form>
</body>
<script src="https://code.jquery.com/jquery-2.1.4.min.js"></script>
<script>
var form = $("#my_form");
form.submit(function() {
console.log('submitted');
form.append($('<input/>', {
type: 'hidden',
name: 'html_content',
value: $("#editable_div").html()
}));
});
</script>
</html>
您应该可以很容易地将此代码调整到您的轨道上。