簡體   English   中英

聯系表中的Ajax失敗響應

[英]Ajax Failure Response in Contact Form

提交后,我已經獲得了聯系表單以顯示成功消息和加載欄,但是由於某種原因,將不會顯示失敗消息。 它只是繼續顯示加載欄。

我嘗試使用以下兩種方法,但並沒有解決問題。 如果未填寫必填字段或電子郵件無效,則將顯示失敗消息。 任何幫助深表感謝。

我試過的

   else if(response == 'failure'){
statusdiv.html('<p class="ajax-success" >Please sure all required information is entered and try again.</p>');
}

 else {
statusdiv.html('<p class="ajax-success" >Please sure all required information is entered and try again.</p>');
}

完整代碼:

  <script type="text/javascript" >
function cvf_form_validate(element) {
    $('html, body').animate({scrollTop: $(element).offset().top-100}, 150);
    element.effect("highlight", { color: "#F2DEDE" }, 1500);
    element.effect('shake');
}

jQuery(document).ready(function($) {
var placeholder=$('#status-placeholder');
jQuery('<div id="comment-status"></div>').insertBefore(placeholder);
var statusdiv=$('#comment-status');

    $('body').on('click', '.submit', function() {
       statusdiv.html('<div class="wrap go"><div class="loader bar"><div class="sfmgreen"></div><div class="dkblue"></div><div class="ltblue"></div><div class="aqua"></div></div>');

        if($('.input-name').val() === '') {
            cvf_form_validate($('.input-name'));

        } else if($('.input-email').val() === '') {            
            cvf_form_validate($('.input-email'));

        } else if($('.input-message').val() === '') {              
            cvf_form_validate($('.input-message'));

        } else {
            var data = {
                'action': 'cvf_send_message',
                'name': $('.input-name').val(),
                'email': $('.input-email').val(),
                'message': $('.input-message').val()
            };

            var ajaxurl = '<?php echo admin_url('admin-ajax.php'); ?>';
            $.post(ajaxurl, data, function(response) {
                if(response === 'success'){
                    statusdiv.html('<p class="ajax-success" >Thanks! Your message has been sent successfully.</p>');
                    $('.input-name').val(''); $('.input-email').val(''); $('.input-message').val('');
                }
                else if(response == 'failure'){
statusdiv.html('<p class="ajax-success" >Please sure all required information is entered and try again.</p>');
}
            });
        }
    });
});
</script>

非常感謝您的幫助和耐心! 我能夠弄清楚。

我沒有在成功處理程序之后添加錯誤回調,而是需要在每個輸入之后添加它。 這允許錯誤定義缺少的字段並為用戶指定要做什么。

if($('.input-name').val() === '') {
    statusdiv.html('<p class="ajax-error" >Please fill out your name and try again.</p>'); response.status;

} else if($('.input-email').val() === '') {            
    statusdiv.html('<p class="ajax-error" >Please fill out your e-mail and try again.</p>'); response.status;

} else if($('.input-message').val() === '') {              
    statusdiv.html('<p class="ajax-error" >Please add a message and try again.</p>'); response.status;

}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM