29 lines
978 B
JavaScript
29 lines
978 B
JavaScript
/**
|
|
* This is a plugin to override the `.refreshValidityState` method of
|
|
* the Selectize library (https://selectize.github.io/selectize.js/).
|
|
* The library is not maintained anymore (as of 2017-09-13) and contains
|
|
* a bug which causes Microsoft Edge to not work with selectized [required]
|
|
* form fields. This plugin should be removed if
|
|
* https://github.com/selectize/selectize.js/pull/1320 is ever merged
|
|
* and a new version of Selectize gets released.
|
|
*/
|
|
|
|
import Selectize from 'selectize';
|
|
|
|
Selectize.define('required-fix', function(options) {
|
|
this.refreshValidityState = () => {
|
|
if (!this.isRequired) return false;
|
|
|
|
let invalid = !this.items.length;
|
|
this.isInvalid = invalid;
|
|
|
|
if (invalid) {
|
|
this.$control_input.attr('required', '');
|
|
this.$input.removeAttr('required');
|
|
} else {
|
|
this.$control_input.removeAttr('required');
|
|
this.$input.attr('required');
|
|
}
|
|
};
|
|
});
|