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 - **Accordion** - Added missing notation for accordion docs #2812
- **Container** - Fix issue with `fluid container` being `100% + gutter` at mobile resolution (causing overflow) - **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** - 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 - **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 / 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 - **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() { id: function() {
return id; 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() { text: function() {
return $text.text(); return $text.text();
}, },
@ -1637,7 +1646,7 @@ $.fn.dropdown = function(parameters) {
; ;
shouldSearch = (isMultiple) shouldSearch = (isMultiple)
? (value.length > 0) ? (value.length > 0)
: (value !== undefined && value !== '' && value !== null)
: (value !== undefined && value !== null)
; ;
isMultiple = (module.is.multiple() && $.isArray(value)); isMultiple = (module.is.multiple() && $.isArray(value));
strict = (value === '' || value === 0) strict = (value === '' || value === 0)
@ -1722,15 +1731,21 @@ $.fn.dropdown = function(parameters) {
}, },
defaultText: function() { defaultText: function() {
var 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() { defaultValue: function() {
var var
defaultValue = $module.data(metadata.defaultValue)
defaultValue = module.get.defaultValue()
; ;
if(defaultValue !== undefined) { if(defaultValue !== undefined) {
module.debug('Restoring default value', defaultValue); module.debug('Restoring default value', defaultValue);
@ -1842,7 +1857,7 @@ $.fn.dropdown = function(parameters) {
var var
text text
; ;
if($text.hasClass(className.placeholder)) {
if(settings.placeholder !== false && $text.hasClass(className.placeholder)) {
text = module.get.text(); text = module.get.text();
module.verbose('Saving placeholder text as', text); module.verbose('Saving placeholder text as', text);
$module.data(metadata.placeholderText, text); $module.data(metadata.placeholderText, text);
@ -1876,8 +1891,8 @@ $.fn.dropdown = function(parameters) {
scrollPage: function(direction, $selectedItem) { scrollPage: function(direction, $selectedItem) {
var var
$selectedItem = $selectedItem || module.get.selectedItem(),
$menu = $selectedItem.closest(selector.menu),
$currentItem = $selectedItem || module.get.selectedItem(),
$menu = $currentItem.closest(selector.menu),
menuHeight = $menu.outerHeight(), menuHeight = $menu.outerHeight(),
currentScroll = $menu.scrollTop(), currentScroll = $menu.scrollTop(),
itemHeight = $item.eq(0).outerHeight(), itemHeight = $item.eq(0).outerHeight(),
@ -1892,8 +1907,8 @@ $.fn.dropdown = function(parameters) {
elementIndex elementIndex
; ;
elementIndex = (direction == 'up') elementIndex = (direction == 'up')
? $selectableItem.index($selectedItem) - itemsPerPage
: $selectableItem.index($selectedItem) + itemsPerPage
? $selectableItem.index($currentItem) - itemsPerPage
: $selectableItem.index($currentItem) + itemsPerPage
; ;
isWithinRange = (direction == 'up') isWithinRange = (direction == 'up')
? (elementIndex >= 0) ? (elementIndex >= 0)
@ -1907,7 +1922,7 @@ $.fn.dropdown = function(parameters) {
; ;
if($nextSelectedItem.length > 0) { if($nextSelectedItem.length > 0) {
module.debug('Scrolling page', direction, $nextSelectedItem); module.debug('Scrolling page', direction, $nextSelectedItem);
$selectedItem
$currentItem
.removeClass(className.selected) .removeClass(className.selected)
; ;
$nextSelectedItem $nextSelectedItem
@ -1949,12 +1964,10 @@ $.fn.dropdown = function(parameters) {
$module.addClass(className.loading); $module.addClass(className.loading);
}, },
placeholderText: function(text) { 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() { tabbable: function() {
if( module.has.search() ) { if( module.has.search() ) {
@ -2037,10 +2050,12 @@ $.fn.dropdown = function(parameters) {
} }
} }
else { else {
if(text !== module.get.placeholderText()) {
$text.removeClass(className.placeholder);
}
module.debug('Changing text', text, $text); module.debug('Changing text', text, $text);
$text $text
.removeClass(className.filtered) .removeClass(className.filtered)
.removeClass(className.placeholder)
; ;
if(settings.preserveHTML) { if(settings.preserveHTML) {
$text.html(text); $text.html(text);

Loading…
Cancel
Save