diff --git a/src/js/select2/options.js b/src/js/select2/options.js index 078f1b4090..4c3110ea16 100644 --- a/src/js/select2/options.js +++ b/src/js/select2/options.js @@ -78,7 +78,8 @@ define([ } $e.attr('ajax--url', Utils.GetData($e[0], 'ajaxUrl')); - Utils.StoreData($e[0], 'ajax--url', Utils.GetData($e[0], 'ajaxUrl')); + Utils.StoreData($e[0], 'ajax-Url', Utils.GetData($e[0], 'ajaxUrl')); + } var dataset = {}; diff --git a/src/js/select2/utils.js b/src/js/select2/utils.js index fba50c657f..ca42a8da10 100644 --- a/src/js/select2/utils.js +++ b/src/js/select2/utils.js @@ -303,11 +303,13 @@ define([ var id = Utils.GetUniqueElementId(element); if (name) { if (Utils.__cache[id]) { - return Utils.__cache[id][name]; + return Utils.__cache[id][name] != null ? + Utils.__cache[id][name]: + $(element).data(name); // Fallback to HTML5 data attribs. } - return null; + return $(element).data(name); // Fallback to HTML5 data attribs. } else { - return Utils.__cache[id]; + return Utils.__cache[id]; } }; diff --git a/tests/data/array-tests.js b/tests/data/array-tests.js index 65a6e32c3d..1288fefae9 100644 --- a/tests/data/array-tests.js +++ b/tests/data/array-tests.js @@ -3,6 +3,7 @@ module('Data adapters - Array'); var ArrayData = require('select2/data/array'); var $ = require('jquery'); var Options = require('select2/options'); +var Utils = require('select2/utils'); var arrayOptions = new Options({ data: [ @@ -237,7 +238,7 @@ test('option tags can receive new data', function(assert) { }); assert.ok( - $select.find(':selected').data('data').extra, + Utils.GetData($select.find(':selected')[0], 'data').extra, '