【问题标题】:Append Form with jQuery in Rails在 Rails 中使用 jQuery 追加表单
【发布时间】:2012-02-12 13:49:28
【问题描述】:

我正在尝试将表单附加到 div 标签

$('#courses_ajax').html('<h1>Materie: <%= @course.name %></h1>');
msg = "<form accept-charset='UTF-8' action='/add_by_course' class='form-horizontal' data-remote='true' id='add_by_courses_id' method='post'>";
msg += "<table class='table table-condensed table-bordered'>";
msg +="<th>Nume Elev</th><th>Nota</th><th>Absente</th>";
<% @students.each do |student|%>
  msg +="<tr><td><%= student.name%></td>";
  msg +="<td><input class='span2' id='course_grade' name='grade[student_id]' size='30' type='number' min=1 max=10 /></td>";
  msg +="<td><input class='span2' id='course_absence' name='absence[student_id]' size='30' type='datetime' /></td>";
  msg +="</tr>";
<%end%>  
msg +="</table><input class='btn-primary' name='commit' type='submit' value='Salveaza' />";
msg +="</form>";
$('#courses_ajax').append(msg); 

所有辅助方法似乎都不适用于 js.erb 文件,有没有更好更干净的方法来做到这一点,也许我错过了一些东西。

【问题讨论】:

    标签: javascript jquery ruby-on-rails forms


    【解决方案1】:

    似乎在这里使用部分更好。创建一个部分并将 html 和助手放在那里。然后放入你的 js.erb 文件:

    $('#courses_ajax').append("<%= escape_javascript(
    render :partial => "your_partial", :object => your_varable, 
    :locals => {:your_other_var => value, ...}  %>");
    

    【讨论】:

      【解决方案2】:

      使用纯 html 中的内容渲染部分可以解决它 但我建议你让 rails 渲染它:

      <%= form_for(@xxxx) ... %> ... "html here" ... <%end%> 
      

      因为这将保护您免受 CSRF 攻击,生成“authenticity_token”。

      添加更多rails 生成&lt;%= %&gt; 输入字段对我来说不起作用,但使用&lt;%= form ... %&gt; 就足够了。

      【讨论】:

        猜你喜欢
        • 2017-11-18
        • 1970-01-01
        • 2013-03-29
        • 2018-11-19
        • 2016-12-17
        • 1970-01-01
        • 1970-01-01
        • 2021-12-19
        相关资源
        最近更新 更多