diff --git a/src/definitions/modules/dropdown.js b/src/definitions/modules/dropdown.js index aa8816127..a11b725e5 100644 --- a/src/definitions/modules/dropdown.js +++ b/src/definitions/modules/dropdown.js @@ -156,7 +156,7 @@ $.fn.dropdown = function(parameters) { create: { id: function() { - id = (Math.random().toString(16) + '000000000').substr(2,8); + id = (Math.random().toString(16) + '000000000').substr(2, 8); elementNamespace = '.' + id; module.verbose('Creating unique id for element', id); } @@ -222,6 +222,7 @@ $.fn.dropdown = function(parameters) { ; $input .removeAttr('class') + .detach() .prependTo($module) ; } @@ -242,8 +243,8 @@ $.fn.dropdown = function(parameters) { module.refresh(); // adjust all modules $firstModules = $allModules.slice(0, index); - $lastModules = $allModules.slice(index + 1); - $allModules = $firstModules.add($module).add($lastModules); + $lastModules = $allModules.slice(index + 1); + $allModules = $firstModules.add($module).add($lastModules); } }, @@ -1079,9 +1080,9 @@ $.fn.dropdown = function(parameters) { if(value == '') { return ''; } - return ($input.is('select') || !module.is.multiple()) - ? value - : value.split(settings.delimiter) + return (!$input.is('select') && module.is.multiple()) + ? value.split(settings.delimiter) + : value ; }, choiceText: function($choice, preserveHTML) { @@ -1397,44 +1398,48 @@ $.fn.dropdown = function(parameters) { } } }, - value: function(value) { - module.debug('Adding selected value to hidden input', value, $input); + value: function(value, text, $selected) { + var + hasInput = ($input.length > 0), + currentValue = module.get.values() + ; if($input.length > 0) { if( module.is.multiple() ) { - var - values = module.get.values() - ; - if($.isArray(values)) { - values.push(value); - values = module.get.uniqueArray(values); + + value = [value]; + + if($.isArray(currentValue)) { + value = currentValue.concat(value); + value = module.get.uniqueArray(value); + } + + // set values + if( $input.is('select') ) { + module.debug('Setting multiple