【问题标题】:undefined local variable or method `f' for , when partial rendering with jquery使用 jquery 部分渲染时,未定义的局部变量或方法“f”
【发布时间】:2018-01-04 05:07:01
【问题描述】:

error

点击按钮时..部分必须显示。

$('#info_fields').html( '<%= render partial: "investor_info_fields", locals: { f: f } %>');

部分形式。

<%= f.fields_for :investor_infos do |f| %>
            <div class="nested-fields">
              <%= f.label :name %> <br>
              <%= f.text_field :name, label: "invested companies", class: "input-md form-control mb-20" %>

               <%= f.label :investment_size_id, "Investment size" %> <strong> *</strong><br>
              <%= f.collection_select :investment_size_id, InvestmentSize.all, :id, :size, {}, {class: "input-md form-control mb-20 startup_info_required"} %><br>


              <%= f.label :investment_time_id, "Investment time" %> <strong> *</strong><br>
              <%= f.collection_select :investment_time_id, InvestmentTime.all, :id, :time, {}, {class: "input-md form-control mb-20 startup_info_required"} %><br>
            </div>
          <% end %>

jquery:

$(".my-class").click(function() {
               var whut=$(this).val();
               ($(this).val() == 4) {

               $('#info_fields').html( '<%= render partial: "investor_info_fields", locals: { f: f } %>');

        }
          });

图片:

【问题讨论】:

  • 你在哪里写的这个脚本?如果它在 form_tag 之外,它将不起作用。你需要把它写在 form_tag 里面。
  • kkk.. 我写在主表单标签之外。
  • 我想你在任何 ajax 请求中都有这个。这个 f 应该是表单对象。并且应该是形式。
  • 同样的错误得到...我只写在表单标签内。在问题中添加了 jquery 代码 ..
  • @GaneshRaju 这不起作用,因为我可以看到您在 script 块中没有 f 局部变量。你能说明你想做什么吗?

标签: javascript jquery ruby-on-rails ruby ruby-on-rails-5


【解决方案1】:

这里你必须进行以下两项更改:

  1. 正如我在评论中提到的,如果您编写了脚本 在 form_tag 中,它不起作用。所以把你的脚本放在 form_tag 里。

  2. 替换以下行:

    $('#info_fields').html( '<%= render partial: "investor_info_fields", locals: { f: f } %>')

    与:

    $('#info_fields').html( '<%= j render partial: "investor_info_fields", locals: { f: f } %>')

在这里,我在 render 关键字前面添加了一个 j(又名 escape_javascript),它可以帮助您从 javascript 渲染部分,如果部分内有一些 ruby​​ 代码,而不是简单的 html 代码。

【讨论】:

  • 谢谢 .. 现在它工作了。我忘记了放置 if 语句。但是重复的字段正在呈现。意味着..第一次完美但是,如果单击第二次相同的字段呈现两次.....
  • 对此,能否附上您的问题截图?
  • 截图..附上
  • 两件事。第一:图片中没有显示在帖子中。我必须通过查看编辑来访问它。第二:请多解释一下,因为图像没有重复的字段。
  • 我还添加了图像,但没有显示。谢谢@Vishal。问题解决了。
猜你喜欢
  • 1970-01-01
  • 2014-08-15
  • 2018-04-13
  • 1970-01-01
  • 1970-01-01
  • 2012-03-04
  • 1970-01-01
  • 2016-07-31
  • 2016-11-21
相关资源
最近更新 更多