Exposes select2 instance via .data('select2')
This commit is contained in:
parent
5424333425
commit
6d0ecbc912
4
src/js/select2/core.js
vendored
4
src/js/select2/core.js
vendored
@ -84,6 +84,9 @@ define([
|
||||
this._syncAttributes();
|
||||
|
||||
Utils.StoreData($element[0], 'select2', this);
|
||||
|
||||
// Ensure backwards compatibility with $element.data('select2').
|
||||
$element.data('select2', this);
|
||||
};
|
||||
|
||||
Utils.Extend(Select2, Utils.Observable);
|
||||
@ -579,6 +582,7 @@ define([
|
||||
this.$element.removeClass('select2-hidden-accessible');
|
||||
this.$element.attr('aria-hidden', 'false');
|
||||
Utils.RemoveData(this.$element[0]);
|
||||
this.$element.removeData('select2');
|
||||
|
||||
this.dataAdapter.destroy();
|
||||
this.selection.destroy();
|
||||
|
39
tests/integration/jquery-calls.js
vendored
39
tests/integration/jquery-calls.js
vendored
@ -1,5 +1,7 @@
|
||||
module('select2(val)');
|
||||
|
||||
var Utils = require('select2/utils');
|
||||
|
||||
test('multiple elements with arguments works', function (assert) {
|
||||
var $ = require('jquery');
|
||||
require('jquery.select2');
|
||||
@ -56,4 +58,41 @@ test('initializes when jQuery $.data contains' +
|
||||
'3',
|
||||
'The option value should be pulled correctly'
|
||||
);
|
||||
});
|
||||
|
||||
test('$element.data returns instance and options correctly',
|
||||
function (assert) {
|
||||
var $ = require('jquery');
|
||||
require('jquery.select2');
|
||||
|
||||
var $select = $(
|
||||
'<select>' +
|
||||
'<option value="1">One</option>' +
|
||||
'<option value="2">Two</option>' +
|
||||
'<option value="3" selected>Three</option>' +
|
||||
'</select>'
|
||||
);
|
||||
|
||||
// Initialize.
|
||||
$select.select2({maximumSelectionLength: 2, multiple: true});
|
||||
|
||||
assert.equal(
|
||||
$select.val(),
|
||||
'3',
|
||||
'Only 1 option should be pulled.'
|
||||
);
|
||||
|
||||
// Try to resolve instance via .data('select2').
|
||||
var $instance = $select.data('select2');
|
||||
assert.ok($instance);
|
||||
assert.ok($instance.options);
|
||||
|
||||
// Ensure $select.data('select2') is the same instance
|
||||
// created by .select2()
|
||||
assert.equal($instance, Utils.GetData($instance.$element[0],
|
||||
'select2'));
|
||||
|
||||
// Ensure initialized property matches.
|
||||
assert.equal($instance.options.options.maximumSelectionLength,
|
||||
2);
|
||||
});
|
Loading…
Reference in New Issue
Block a user