что именно не работает? как минимум проблема с
success: function(data){
// в случае, когда пришло success. Отработало без ошибок
if(data.result == 'success'){
alert('форма корректно заполнена');
return true;
}
форма не отправит данные дальше, так как это уже другое замыкание, которое будет вызвано когда запрос успешный придет, вместо возварта true вы должны запустить отправку формы вручную, но тогда вы в цикл уйдете, надо как-то сказать что данные верны, теперь чтоб отработал стандартный механизм, а не опять по кругу проверять данные