我在twitter bootstrap表单中嵌入了tinymce [http://www.tinymce.com/],因此用户可以输入格式化文本,我可以将其保存到postgres数据库中。
我面临的问题是我在提交表格时得到明文。有人可以帮我把格式化文本作为一个字符串,我可以坚持并回显到html页面。
这是我的代码[注意:它使用HAML]
%html{:lang => "en"}
%head
%meta{:charset => "utf-8"}
%link{:href => "//netdna.bootstrapcdn.com/twitter-bootstrap/2.2.2/css/bootstrap-combined.min.css", :rel => "stylesheet"}
%script{:src => "//tinymce.cachefly.net/4.0/tinymce.min.js"}
:javascript
tinymce.init({selector:'textarea_format'});
%body
.container
%legend Post a New Job
.well
%form#signup.form-horizontal{:action => "submit", :method => "post"}
%legend
.control-group
%label.control-label Title
.controls
.input-prepend
%span.add-on
%i.icon-user
%input#title.input-xxlarge{:name => "title", :placeholder => "Title", :type => "text"}/
.control-group
%label.control-label Description Formatted
.controls
.input-prepend
-#%span.add-on
-#%i.icon-user
%textarea_format#message.input-xlarge.span6{:name => "message_formatted", :rows => "10"}
.control-group
%label.control-label
.controls
%button.btn.btn-success{:type => "submit"} Submit
好像我可以使用tinyMCE.get('content id')。getContent()但是我不知道怎么做?
我是java-script的新手。有人可以发布所需的代码更改和一些解释。
由于
答案 0 :(得分:1)
基本上,最简单的方法是在表单中添加一个隐藏字段,在提交按钮上添加一个click事件处理程序。
所以,在你的格式上创建一个名为“message_formatted”的隐藏输入(因为我想你的模型中的相应字段叫做message_formatted),并将你的textarea的名字改为别的东西,因为它不再是很重要。
使用jQuery:
$('#signup input[type=submit]').click(function(e){
$('input[name=message_formatted]').val(tinyMCE.get('content id').getContent());
});
就添加javascript的位置而言,这取决于您。最好将它放在javascripts目录中(目前还不清楚你是否使用Rails和资产管道)。如果您只想在此haml页面中添加内嵌javascript,请将上述内容放在页面底部的content_for :javascript do
内
content_for :javascript do
// enter the javascript from above here