Skip to content

Commit 95d2413

Browse files
committed
handle required elements
1 parent a601b23 commit 95d2413

File tree

1 file changed

+17
-0
lines changed

1 file changed

+17
-0
lines changed

src/selectize.js

+17
Original file line numberDiff line numberDiff line change
@@ -212,6 +212,22 @@ $.extend(Selectize.prototype, {
212212
delete settings.items;
213213
}
214214

215+
self.isRequired = self.$input.is(":required");
216+
self.$control_input.prop('required', self.isRequired && !self.items.length);
217+
218+
// feature detect for the validation API
219+
if(self.$input[0].validity) {
220+
self.$input.on('invalid' + eventNS, function(event){
221+
event.preventDefault();
222+
self.isInvalid = true;
223+
self.refreshClasses();
224+
});
225+
self.$input.on('change' + eventNS, function(event){
226+
self.isInvalid = !self.$input[0].validity.valid;
227+
self.refreshClasses();
228+
});
229+
}
230+
215231
self.updateOriginalInput();
216232
self.refreshItems();
217233
self.refreshClasses();
@@ -293,6 +309,7 @@ $.extend(Selectize.prototype, {
293309
* input / select element.
294310
*/
295311
onChange: function() {
312+
this.$control_input.prop('required', this.isRequired && !this.items.length);
296313
this.$input.trigger('change');
297314
},
298315

0 commit comments

Comments
 (0)