By default, the validation on a field is only triggered by these events (for a type="text"
field)…
-
onfocusout
, when the user leaves a field (validates just the field) -
onkeyup
, when the user is typing within a field (validates just the field) -
onclick
, when the user clicks thesubmit
button (validates the whole form)
If you need to programmatically trigger validation after you programmatically change the value of a field, then you need to invoke the .valid()
method on that field. It will effectively trigger validation similar as the events above.
$('#myField').valid(); // validates just field element with id="myField"
$('#myForm').valid(); // validates the whole form
So you’ll need to find a method within select2 that is fired whenever the value is changed and put .valid()
inside of that. It looks like the change
event is what you’ll need.
$("#vedit-filter").select2({
// your options here
}).on('change', function() {
$(this).valid();
});