【问题标题】:Rails 3 render form has text not has htmlRails 3渲染表单有文本没有html
【发布时间】:2011-09-22 15:28:59
【问题描述】:

我想在不刷新窗口的情况下渲染表单(在特定的 div 中)。问题是

$('#details').html("<%= escape_javascript(render('form')) %>");

正在呈现我的表单,而不是 html。

代码: 在我的 index.html.erb 我有

<%= link_to 'Edit note', edit_note_path(:id => Note.user_note(wine.id,current_user.id)),:remote => true %><br/>

然后在我的控制器中我有

 def edit
    @note = Note.find(params[:id])
    respond_to do |format|
      format.js {}
    end
  end

然后在 edit.js.erb 我有:

$('#details').html("<%= escape_javascript(render('form')) %>");

发生的情况是 div 详细信息获取的表单具有文本而不是 html 表单外观。

我使用的是 Rails 3.08,Jquery ..到目前为止,ajax 没有问题..只是在这种特殊情况下,我想呈现 html 而不是文本。

我错过了什么吗?谢谢你的时间:)

【问题讨论】:

    标签: jquery ruby-on-rails ajax render


    【解决方案1】:

    试试:

    $('#details').html("<%== escape_javascript(render('form')) %>");
    

    (注意使用&lt;%== 代替&lt;%=)。

    【讨论】:

    • 哇,完美!谢谢 ! div>
      div>form>” 为什么会这样?
    • &lt;%= 转义输入(将&amp;lt; 转换为&amp;lt;&amp;gt; 转换为&amp;gt; 等等),而&lt;%== 不会。
    • 好的,谢谢!如何避免这个呈现的表单在文本字段中没有填充 html coinde?​​span>
    • 很难说,不知道 HTML 是如何进入 textarea 的。您是否将转义的 HTML 存储在数据库中?
    • 数据库中没有没有 html。我有一个 grails 脚手架生成的表单。例如,在文本字段打印出“div>”之后,在文本区域值中,除了值(来自数据库)打印出“textarea> div>
      div>form>" .. 甚至没有呈现表单提交按钮。再次感谢:)
    猜你喜欢
    相关资源
    最近更新 更多
    热门标签