Browse Source

#2637 fixes issues with placeholder

pull/2755/merge
Jack Lukic 9 years ago
parent
commit
1900729083
2 changed files with 35 additions and 19 deletions
  1. 1
      RELEASE-NOTES.md
  2. 53
      src/definitions/modules/dropdown.js

1
RELEASE-NOTES.md

@ -24,6 +24,7 @@
- **Accordion** - Added missing notation for accordion docs #2812
- **Container** - Fix issue with `fluid container` being `100% + gutter` at mobile resolution (causing overflow)
- **Dropdown** - Remove use of `trim` which causes issues IE 11 and below #2806
- **Dropdown** - Fixes issues with setting "" (empty quote) values when `placeholder: false` is used. Fixes issues with using `clear` and `restore defaults` without placeholders. #2637
- **Embed** - Remove accidental `console.log` statements in js #2760
- **Form / Input** - Fixes `::placeholder` text color for `ui error input`, modifies form error placeholder color to distinguish from form value error color #2786
- **Form** - Date input and other special input in chrome now are the same height as normal input (adds custom vendor shadow dom styling) #2704

53
src/definitions/modules/dropdown.js

@ -1372,6 +1372,15 @@ $.fn.dropdown = function(parameters) {
id: function() {
return id;
},
defaultText: function() {
return $module.data(metadata.defaultText);
},
defaultValue: function() {
return $module.data(metadata.defaultValue);
},
placeholderText: function() {
return $module.data(metadata.placeholderText) || '';
},
text: function() {
return $text.text();
},
@ -1637,7 +1646,7 @@ $.fn.dropdown = function(parameters) {
;
shouldSearch = (isMultiple)
? (value.length > 0)
: (value !== undefined && value !== '' && value !== null)
: (value !== undefined && value !== null)
;
isMultiple = (module.is.multiple() && $.isArray(value));
strict = (value === '' || value === 0)
@ -1722,15 +1731,21 @@ $.fn.dropdown = function(parameters) {
},
defaultText: function() {
var
defaultText = $module.data(metadata.defaultText)
defaultText = module.get.defaultText(),
placeholderText = module.get.placeholderText
;
module.debug('Restoring default text', defaultText);
module.set.text(defaultText);
$text.addClass(className.placeholder);
if(defaultText === placeholderText) {
module.debug('Restoring default placeholder text', defaultText);
module.set.placeholderText(defaultText);
}
else {
module.debug('Restoring default text', defaultText);
module.set.text(defaultText);
}
},
defaultValue: function() {
var
defaultValue = $module.data(metadata.defaultValue)
defaultValue = module.get.defaultValue()
;
if(defaultValue !== undefined) {
module.debug('Restoring default value', defaultValue);
@ -1842,7 +1857,7 @@ $.fn.dropdown = function(parameters) {
var
text
;
if($text.hasClass(className.placeholder)) {
if(settings.placeholder !== false && $text.hasClass(className.placeholder)) {
text = module.get.text();
module.verbose('Saving placeholder text as', text);
$module.data(metadata.placeholderText, text);
@ -1876,8 +1891,8 @@ $.fn.dropdown = function(parameters) {
scrollPage: function(direction, $selectedItem) {
var
$selectedItem = $selectedItem || module.get.selectedItem(),
$menu = $selectedItem.closest(selector.menu),
$currentItem = $selectedItem || module.get.selectedItem(),
$menu = $currentItem.closest(selector.menu),
menuHeight = $menu.outerHeight(),
currentScroll = $menu.scrollTop(),
itemHeight = $item.eq(0).outerHeight(),
@ -1892,8 +1907,8 @@ $.fn.dropdown = function(parameters) {
elementIndex
;
elementIndex = (direction == 'up')
? $selectableItem.index($selectedItem) - itemsPerPage
: $selectableItem.index($selectedItem) + itemsPerPage
? $selectableItem.index($currentItem) - itemsPerPage
: $selectableItem.index($currentItem) + itemsPerPage
;
isWithinRange = (direction == 'up')
? (elementIndex >= 0)
@ -1907,7 +1922,7 @@ $.fn.dropdown = function(parameters) {
;
if($nextSelectedItem.length > 0) {
module.debug('Scrolling page', direction, $nextSelectedItem);
$selectedItem
$currentItem
.removeClass(className.selected)
;
$nextSelectedItem
@ -1949,12 +1964,10 @@ $.fn.dropdown = function(parameters) {
$module.addClass(className.loading);
},
placeholderText: function(text) {
text = text || $module.data(metadata.placeholderText);
if(text) {
module.debug('Restoring placeholder text');
module.set.text(text);
$text.addClass(className.placeholder);
}
text = text || module.get.placeholderText();
module.debug('Setting placeholder text', text);
module.set.text(text);
$text.addClass(className.placeholder);
},
tabbable: function() {
if( module.has.search() ) {
@ -2037,10 +2050,12 @@ $.fn.dropdown = function(parameters) {
}
}
else {
if(text !== module.get.placeholderText()) {
$text.removeClass(className.placeholder);
}
module.debug('Changing text', text, $text);
$text
.removeClass(className.filtered)
.removeClass(className.placeholder)
;
if(settings.preserveHTML) {
$text.html(text);

Loading…
Cancel
Save