Browse Source

#1630 Adds form clear and dropdown clear behaviors

pull/1729/head
jlukic 10 years ago
parent
commit
7dffde0f82
3 changed files with 56 additions and 6 deletions
  1. 3
      RELEASE-NOTES.md
  2. 33
      src/definitions/behaviors/form.js
  3. 26
      src/definitions/modules/dropdown.js

3
RELEASE-NOTES.md

@ -4,9 +4,10 @@
**Key Features**
- **Form** - Form now has new methods `reset`, `set value(s)` and `serialize` for modifying form data. Check docs for details on implementation. **Thanks @mktm**
- **Form** - Form now has new methods `reset`, `clear`, `set value(s)`, and `read value(s)` for modifying and reading form data. Check docs for details on implementation. **Thanks @mktm**
- **Search** - Search `onSelect` now recieves JSON object matching currently selected element, you can now programmatically retrieve result JSON using `.search('get result', 'query')` or `.search('get results'). `get result` will default to current value unless specified as first parameter.
- **Transition** - Added many new transitions, and new directions for existing transitions **Thanks @ph7vc**
- **Dropdown** - Dropdown now stores `placeholder text` (prompt text) as separate from `default text` (text set on page load). You can now reset placeholder conditions using `$('.ui.dropdown').dropdown('clear');``
**Enhancements**
- **API** - Added new behavior `$.api('abort')` which cancels current request

33
src/definitions/behaviors/form.js

@ -131,6 +131,39 @@ $.fn.form = function(fields, parameters) {
;
},
clear: function() {
$field
.each(function () {
var
$field = $(this),
$element = $field.parent(),
$fieldGroup = $field.closest($group),
$prompt = $fieldGroup.find(selector.prompt),
defaultValue = $field.data(metadata.defaultValue) || '',
isCheckbox = $element.is(selector.uiCheckbox),
isDropdown = $element.is(selector.uiDropdown),
isErrored = $fieldGroup.hasClass(className.error)
;
if(isErrored) {
module.verbose('Resetting error on field', $fieldGroup);
$fieldGroup.removeClass(className.error);
$prompt.remove();
}
if(isDropdown) {
module.verbose('Resetting dropdown value', $element, defaultValue);
$element.dropdown('clear');
}
else if(isCheckbox) {
$element.checkbox('uncheck');
}
else {
module.verbose('Resetting field value', $field, defaultValue);
$field.val('');
}
})
;
},
reset: function() {
$field
.each(function () {

26
src/definitions/modules/dropdown.js

@ -965,7 +965,7 @@ $.fn.dropdown = function(parameters) {
;
module.debug('Restoring default text', defaultText);
module.set.text(defaultText);
$text.addClass(settings.className.placeholder);
$text.addClass(className.placeholder);
},
defaultValue: function() {
var
@ -987,6 +987,7 @@ $.fn.dropdown = function(parameters) {
save: {
defaults: function() {
module.save.defaultText();
module.save.placeholderText();
module.save.defaultValue();
},
defaultValue: function() {
@ -994,9 +995,23 @@ $.fn.dropdown = function(parameters) {
},
defaultText: function() {
$module.data(metadata.defaultText, $text.text() );
},
placeholderText: function() {
if($text.hasClass(className.placeholder)) {
$module.data(metadata.placeholderText, $text.text());
}
}
},
clear: function() {
var
placeholderText = $module.data(metadata.placeholderText)
;
module.set.text(placeholderText);
module.set.value('');
$text.addClass(className.placeholder);
},
set: {
filtered: function() {
var
@ -1658,10 +1673,11 @@ $.fn.dropdown.settings = {
},
metadata: {
defaultText : 'defaultText',
defaultValue : 'defaultValue',
text : 'text',
value : 'value'
defaultText : 'defaultText',
defaultValue : 'defaultValue',
placeholderText : 'placeholderText',
text : 'text',
value : 'value'
},
selector : {

Loading…
Cancel
Save