1

我已经安装了这个漂亮的 gem,并在过去的 2 个小时里试图让它工作。

我设法在父表单中显示嵌套字段并创建/更新记录。

但是,添加/删除 JS 链接不起作用。这是因为在控制台中给了我这个错误。

Uncaught TypeError: Object [object Object] has no method 'nestedFields' neste_attributes_forms.js:2
(anonymous function) neste_attributes_forms.    js:2
fire                                            jquery.js:1018
self.fireWith                                   jquery.js:1128
jQuery.extend.ready                             jquery.js:417
DOMContentLoaded

我是 JS 的新手。所以,我不确定问题是什么。

我尝试了与 gem 页面上相同的代码:

$(document).ready(function(e) {
  $('FORM').nestedFields();
});

我也尝试过通过 div 的 id 调用。但是,无济于事。我检查了页面源并加载了这段代码。

你知道我错过了什么吗?非常感谢任何帮助!!!

形式的一部分:haml

= form_for(@event) do |f|
  ....somefields....

  #nested_layers   
    .items
      = f.nested_fields_for :details do |f|
        %fieldset.item
          = f.label :town
          = f.text_field :town
          %a.remove{:href => "#"} remove
          = f.hidden_field :id
          = f.hidden_field :_destroy
    %a.add{:href => "#"} add phone
  ..someOtherFields....

应用程序.js

//= require jquery
//= require jquery_ujs
//= require jquery-ui-1.9.2.custom.min
//= require jquery.nested-fields
....

已修复:Application.js 包含一个不应删除的非常聪明的句子: // 警告:第一个空白行标志着要处理的内容的结束,任何空白行都应该 // 遵循以下要求。因此,只需确保每个 //= require... 都在另一个下方。否则你会错过方法!

4

1 回答 1

0

似乎未加载所需的 javascript 库,因此请确保:

//= require jquery.nested-fields

正确地包含在app/assets/javascripts/application.js

于 2013-04-09T19:14:32.913 回答