Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: для новичков > Перехват клика на submit с условием


Автор: vov4eg 12.12.2012, 14:35
Привет всем.

Задача вот в чем:

есть контактная форма которая аяксом отправляет данные на сервер, понадобилось прикрутить капчу с картинками к этой форме и сделать капчу также на аяксе.

Капча работает нормально я получаю подтверждение или отказ если выбраны правильные или неправильные картинки. 

Проблема в том что отправка запроса на проверку данных с капчи и отправка данных на сервер с формы происходят при клике на сабмит, и я не пойму как их можно поставить в очередь , чтобы отправка данных с контактной формы ждала проверки капчи. 

Кто знает помогите!!!!????

Код

    $('.wpcf7-submit').click(function(){
     var chb_f1 = jQuery('input.checkbot-f1').val();
     var chb_f2 = jQuery('input.checkbot-f2').val();
     var jqxhr = jQuery.post(ajaxurl, {action: 'iwt_checkbot_ajax_request', f1:chb_f1, f2:chb_f2});
     jqxhr_checkbot.complete(function(data){
         console.log(data);
     });
     
if(data.responseText == "true"){
return true;
}else{
return false;
}    
    });

Автор: CruorVult 12.12.2012, 14:40
1. Заменить submit на button
2. При клике на button проверять капчу, если все ок - делать form.submit()

Автор: Aliance 12.12.2012, 15:59
Код

$('.wpcf7-submit').click(function(event){
    event.preventDefault(); // отменяем поведение формы по умолчанию
    var chb_f1 = jQuery('input.checkbot-f1').val();
    var chb_f2 = jQuery('input.checkbot-f2').val();
    var jqxhr = jQuery.post(ajaxurl, {action: 'iwt_checkbot_ajax_request', f1:chb_f1, f2:chb_f2});
    jqxhr_checkbot.complete(function(data){
        if(data.responseText == "true"){
            $(this).closest('form').trigger('submit'); // вызываем submit у формы
            return true;
        }else{
            alert('Wrong captcha!');
            return false;
        }
    });
});

Автор: vov4eg 12.12.2012, 17:31
О спасибо, то что надо.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)