Первая часть обработчика успеха очищает поля ввода, поэтому его необходимо переместить после логики, которая определяет, была ли ошибка в ответе:
success: function(xml){
$('#shoutNickname').val('');
$('#shoutMessage').val('');
etc...
Требуется перейти
if($('error', xml).text()) {
$('#shoutStatus').empty().removeClass().addClass('shoutError').html($('error', xml).text());
} else {
/** HERE! **/
$('#shoutStatus').empty().removeClass().addClass('shoutStatus').html($('status', xml).text());
}
Чтобы реализовать эффект slideDown, вы должны проверить slideDown () docs
Для реализации CAPTCHA, я бы порекомендовал securimage .Это просто реализовать, просто требуется небольшая проверка на стороне сервера и поле ввода на внешнем интерфейсе.Затем вам просто нужно изменить объект data
, передаваемый в $ .ajax (), чтобы включить дополнительное входное значение и убедиться, что проверка на стороне сервера обновлена, чтобы включить правильный ответ об ошибке, если проверка не удалась.