我正在開發一個rails項目。使用標籤observe_field,我將文本輸入到文本區域,在控件中處理它,並將結果顯示在div中(非常類似於堆棧溢出中的預覽)。一切工作正常,直到我鍵入某些特殊字符。傳遞特殊字符與observe_field的問題
- ? =>使不要在PARAMS中發現的可變對象
- (磅)=>導致一個無效的真實性錯誤
- %=>停止從被更新
- & =每一件事情>後&是div不再傳遞給服務器上的變量。
有沒有辦法解決這個問題?
---代碼示例---
這是視圖。 ( 'postbody' 是一個文本區域)
<%= observe_field 'postbody',
:update => 'preview',
:url => {:controller => 'blog', :action => 'textile_to_html'},
:frequency => 0.5,
:with => 'postbody' -%>
這是被稱爲
def textile_to_html
text = params['postbody']
if text == nil then
@textile_to_html = '<br/>never set'
else
r = RedCloth.new text
@textile_to_html = r.to_html
end
render :layout => false
end
控制器,這是生成的JavaScript:
new Form.Element.Observer('postbody', 0.5, function(element, value) {new Ajax.Updater('preview', '/blog/textile_to_html', {asynchronous:true, evalScripts:true, parameters:'postbody=' + value + '&authenticity_token=' + encodeURIComponent('22f7ee12eac9efd418caa0fe76ae9e862025ef97')})})