将格式化文本保存到数据库并将其“原样”检索回来,就像格式化字符串一样

时间:2013-06-22 06:14:49

标签: javascript forms postgresql web-applications tinymce

我在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的新手。有人可以发布所需的代码更改和一些解释。

由于

1 个答案:

答案 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