【问题标题】:Limit Minimum Count of Nested Fields限制嵌套字段的最小数量
【发布时间】:2014-05-09 19:28:59
【问题描述】:

我有一个父模型和一个子模型。

我想强制要求在创建新父级时至少创建一个子级。

我正在使用 nested_form gem,目前正在使用此脚本来限制每条记录添加的子项数量。

$(function() {
var fieldsCount,
  maxFieldsCount = 4,
  $addLink = $('a.add_nested_fields');

function toggleAddLink() {
$addLink.toggle(fieldsCount <= maxFieldsCount)
}

$(document).on('nested:fieldAdded', function() {
fieldsCount += 1;
toggleAddLink();
});

$(document).on('nested:fieldRemoved', function() {
fieldsCount -= 1;
toggleAddLink();
});  

// count existing nested fields after page was loaded
fieldsCount = $('form .fields').length;
toggleAddLink();
})

有没有办法让我也包括“最低”要求?让我们说(1)孩子?如果只有(1)嵌套表单可见,则基本上删除“删除链接”。

【问题讨论】:

    标签: javascript ruby-on-rails-4 nested-forms


    【解决方案1】:

    这是我想出的关于如何通过根据其计数删除“删除”链接来确保至少显示一个字段的代码

      $(function() {
      var fieldsCount,
      maxFieldsCount = 2,
      $addLink = $('a.add_nested_fields');
    
      var mfieldsCount,
      minFieldsCount = 0, // placed at 0 because first object is auto built from controller
      $removeLink = $('a.remove_nested_fields');
    
      function toggleAddLink() {
      $addLink.toggle(fieldsCount <= maxFieldsCount)
     }
    
      function toggleRemoveLink() {
      $removeLink.toggle(mfieldsCount <= minFieldsCount)
      }
    
      $(document).on('nested:fieldAdded', function() {
      fieldsCount += 1;
      toggleAddLink();
     });
    
     $(document).on('nested:fieldRemoved', function() {
     fieldsCount -= 1;
     toggleAddLink();
    });
    
     $(document).on('nested:fieldRemoved', function() {
    mfieldsCount -= 0;
    toggleRemoveLink();
     });  
    
     // count existing nested fields after page was loaded
     fieldsCount = $('form .fields').length;
     toggleAddLink();
    
      mfieldsCount = $('form .fields').length;
      toggleRemoveLink();
     })
    

    【讨论】:

      【解决方案2】:

      你可以在你的父控制器中调用一个 build 方法在 action new 中。 因此,当您成为父母/新人时,您将已经创建了一个孩子。就是这样: @parent.children.build

      【讨论】:

        猜你喜欢
        • 2020-04-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-08-25
        • 2017-12-25
        • 1970-01-01
        • 1970-01-01
        • 2019-12-13
        相关资源
        最近更新 更多