Bueno no se me ocurre mucho... pero quizás puedas ejecutar tu función validar() desde xajax con el ->addScriptCall("validar") y en dicha funcion retornas
true si está todo bien validado
Y sólo te quedaría preguntar en xajax si el addScriptCall devuelve
true y procedes a guardar en tu BD....
Espero que realmente se pueda hacer esto... inténtalo.