first commit
This commit is contained in:
43
libraries/selectize/plugins/restore_on_backspace/plugin.js
Normal file
43
libraries/selectize/plugins/restore_on_backspace/plugin.js
Normal file
@@ -0,0 +1,43 @@
|
||||
/**
|
||||
* Plugin: "restore_on_backspace" (selectize.js)
|
||||
* Copyright (c) 2013 Brian Reavis & contributors
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License"); you may not use this
|
||||
* file except in compliance with the License. You may obtain a copy of the License at:
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software distributed under
|
||||
* the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF
|
||||
* ANY KIND, either express or implied. See the License for the specific language
|
||||
* governing permissions and limitations under the License.
|
||||
*
|
||||
* @author Brian Reavis <brian@thirdroute.com>
|
||||
*/
|
||||
|
||||
Selectize.define('restore_on_backspace', function(options) {
|
||||
var self = this;
|
||||
|
||||
options.text = options.text || function(option) {
|
||||
return option[this.settings.labelField];
|
||||
};
|
||||
|
||||
this.onKeyDown = (function() {
|
||||
var original = self.onKeyDown;
|
||||
return function(e) {
|
||||
var index, option;
|
||||
if (e.keyCode === KEY_BACKSPACE && this.$control_input.val() === '' && !this.$activeItems.length) {
|
||||
index = this.caretPos - 1;
|
||||
if (index >= 0 && index < this.items.length) {
|
||||
option = this.options[this.items[index]];
|
||||
if (this.deleteSelection(e)) {
|
||||
this.setTextboxValue(options.text.apply(this, [option]));
|
||||
this.refreshOptions(true);
|
||||
}
|
||||
e.preventDefault();
|
||||
return;
|
||||
}
|
||||
}
|
||||
return original.apply(this, arguments);
|
||||
};
|
||||
})();
|
||||
});
|
||||
Reference in New Issue
Block a user