@Override public void onEvent(IEvent<?> event) { super.onEvent(event); if (event.getPayload() instanceof AjaxRequestTarget) { AjaxRequestTarget target = (AjaxRequestTarget) event.getPayload(); if (target.getComponents().contains(this)) { // if this component is being repainted by ajax, directly, we must destroy Select2 so it // removes // its elements from DOM target.prependJavaScript( JQuery.execute("$('#%s').select2('destroy');", getJquerySafeMarkupId())); } } }