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.