2014-01-16 28 views

回答

2

看看CKEditor - 它是一個開源的HTML文本編輯器。

+0

嘿謝謝!這工作很好,如何保存後我看到的HTML,顯示在我的看法,而不是編輯,我如何使HTML呈現? – user2472480

+0

而不是使用'<%= @ model.value%>'使用'<%= @ model.value.html_safe%>。然而,首先檢查用戶輸入是否很好地逃脫了,所以它贏了;打開一個關於html注入的大門atacks – BroiSatse

+0

這和做<%raw model.value%>有區別嗎? – user2472480

2

你需要simple format

返回文本用簡單格式化規則


一些示例

my_text = "Here is some basic text...\n...with a line break." 

simple_format(my_text) 
# => "<p>Here is some basic text...\n<br />...with a line break.</p>" 
+0

會這樣爲用戶工作?如果他們將文本複製並粘貼到我的表單中?因爲他們不會使用\ n – user2472480

+0

'\ n'這只是換行符 –

+0

http://en.wikipedia.org/wiki/Newline –

0

轉化爲HTML我想你可能需要使用一個DIV/SPAN與contenteditable

<div contenteditable="true"></div> 

注意,你不能直接提交內容的一個div,這樣你就可以監聽鍵盤事件keyup keypress click或只是形式submit,和HTML複製到表單元素。

<script type="text/javascript"> 
    window.onload = function() { 
     var myForm = document.getElementById('my-form'); 
     myForm.onsubmit = function(e){ 
      var myFormattedText = document.getElementById("my-formatted-text");   
      var htmlData = myFormattedText.innerHTML; 
      document.getElementById("my-html").value = htmlData; 
     } 
    } 
    // or with jQuery 
    /** 
    $(function(){ 
     $('form#my-form').bind('submit', function(){ 
      var htmlData = $("div#my-formatted-text", this).html(); 
      $('input#my-html', this).val(htmlData); 

     }); 
    }); 
    **/ 
</script> 


<form action="" id='my-form'> 
    <input type="hidden" name='my-html' id='my-html'> 
    <div contenteditable='true' id='my-formatted-text'></div> 
    <input type="submit"> 
</form>