From 86f65ee098cd89fe2ecd6f552e6d64411a8ed992 Mon Sep 17 00:00:00 2001 From: Alex Petrash Date: Fri, 5 May 2017 21:20:31 +0300 Subject: [PATCH 1/2] dynamic amount of countries in prompt area, depends of element width --- foundation-select.js | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/foundation-select.js b/foundation-select.js index 2c630b2..eea43b1 100644 --- a/foundation-select.js +++ b/foundation-select.js @@ -61,12 +61,16 @@ selectedTitles.push($(this).find('.option-title').html()); }); origDropdown.val(selectedOptions).change(); + + maxCharsCount = (dropdown.width() - 20) / 7; + joinedSelectedTitles = selectedTitles.join(', '); + if (!selectedOptions.length) { selectPrompt = origDropdown.data('prompt') ? origDropdown.data('prompt') : 'Choose...'; - } else if (selectedOptions.length > 2) { + } else if (joinedSelectedTitles.length > maxCharsCount) { selectPrompt = selectedTitles.length + ' of ' + selectOptions.length + ' selected'; } else { - selectPrompt = selectedTitles.join(', '); + selectPrompt = joinedSelectedTitles; } dropdown.find('.custom-dropdown-button').html(selectPrompt); } else { @@ -91,12 +95,16 @@ dropdown.find('li[data-value="' + $(this).val() + '"]').addClass('selected'); } }); + + maxCharsCount = (dropdown.width() - 20) / 7; + joinedSelectedTitles = selectedTitles.join(', '); + if (!selectedTitles.length) { selectPrompt = origDropdown.data('prompt') ? origDropdown.data('prompt') : 'Choose...'; - } else if (selectedTitles.length > 2) { + } else if (joinedSelectedTitles.length > maxCharsCount) { selectPrompt = selectedTitles.length + ' of ' + selectOptions.length + ' selected'; } else { - selectPrompt = selectedTitles.join(', '); + selectPrompt = joinedSelectedTitles; } dropdown.find('.custom-dropdown-button').html(selectPrompt); }); From 9ffc2a7aba66f53bd3a31155d556607022449b80 Mon Sep 17 00:00:00 2001 From: Alex Petrash Date: Fri, 5 May 2017 22:11:02 +0300 Subject: [PATCH 2/2] additional fix to use same logic during initialisation --- foundation-select.js | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/foundation-select.js b/foundation-select.js index eea43b1..8a43d8d 100644 --- a/foundation-select.js +++ b/foundation-select.js @@ -26,12 +26,15 @@ selectOptions.push('
  • ' + $(this).html() + '
  • '); }); + maxCharsCount = (select.width() - 20) / 7; + joinedSelectedTitles = selectedTitles.join(', '); + if (!selectedTitles.length) { selectPrompt = select.data('prompt') ? select.data('prompt') : 'Choose...'; - } else if( selectedTitles.length > 2) { + } else if (joinedSelectedTitles.length > maxCharsCount) { selectPrompt = selectedTitles.length + ' of ' + selectOptions.length + ' selected'; } else { - selectPrompt = selectedTitles.join(', '); + selectPrompt = joinedSelectedTitles; } dropdown = '