This repository has been archived by the owner on Dec 12, 2021. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 506
How To: Limit max count of nested fields
Hunter Stevens edited this page Jun 15, 2015
·
4 revisions
##Limit a single nested model This script hides or show 'Add new' link depending on how many nested fields are on a page.
$(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();
})
##Limit for any nested model
This script hides or show 'Add new' link depending on how many (data-limit
attribute) nested fields are on a page.
$(function() {
$(document).on('nested:fieldAdded', function(e) {
var link = $(e.currentTarget.activeElement);
if (!link.data('limit')) {
return;
}
if (link.siblings('.fields:visible').length >= link.data('limit')) {
link.hide();
}
});
$(document).on('nested:fieldRemoved', function(e) {
var link = $(e.target).siblings('a.add_nested_fields');
if (!link.data('limit')) {
return;
}
if (link.siblings('.fields:visible').length < link.data('limit')) {
link.show();
}
});
})