【问题标题】:Issues with ajax contact form inside wordpress theme [closed]wordpress 主题中的 ajax 联系表单问题[关闭]
【发布时间】:2014-09-13 15:18:38
【问题描述】:

我被要求调查的网站遇到问题。本页表格:

http://www.emerygrid.ru/en/service/product-samples/

似乎根本不起作用......表单甚至没有验证,更不用说发送电子邮件了!

它应该首先验证(有错误处理),然后发送电子邮件(在 WP 选项中设置)

我没有太多关于细节的信息,但如果有人愿意为我指出正确的方向,我非常乐意提供信息。 请记住,我对 Jquery 不是很擅长,所以你必须让它对我来说真的很简单......

谢谢大家!

【问题讨论】:

  • 这不太合适。差不多,做你的工作。如果您对部分或理解代码有问题,请询问,人们会非常愿意提供帮助。不要只希望有人会为您解决问题。

标签: php jquery ajax wordpress validation


【解决方案1】:

点击提交时什么都没有发生,因为在你的 js 中你正在调用它

$(".comment_form, .contact_form").submit(function(event) 并且您使用了 event.preventDefault(); ,因此该表单不显示默认行为。检查控制台你的js有错误。它说

TypeError: $(...).block 不是函数。

您需要先修复这些错误。

这是处理表单的 js。

 if($(".contact_form").length)
            $(".contact_form")[0].reset();
        if($(".comment_form").length)
            $(".comment_form")[0].reset();
        $(".comment_form, .contact_form").submit(function(event){
            event.preventDefault();
            var data = $(this).serializeArray();
            var id = $(this).attr("id");
            $("#"+id+" .block").block({
                message: false,
                overlayCSS: {
                    opacity:'0.3',
                    "backgroundColor": "#FFF"
                }
            });
            $.ajax({
                url: config.ajaxurl,
                data: data,
                type: "post",
                dataType: "json",
                success: function(json){
                    //$("#"+id+" [name='submit'], #"+id+" [name='name'], #"+id+" [name='contact_name'], #"+id+" [name='telephone'], #"+id+" [name='email'], #"+id+" [name='products']").qtip('destroy');
                    if(typeof(json.isOk)!="undefined" && json.isOk)
                    {
                        if(typeof(json.submit_message)!="undefined" && json.submit_message!="")
                        {
                            $("#"+id+" [name='submit']").qtip(
                            {
                                style: {
                                    classes: 'ui-tooltip-success'
                                },
                                content: { 
                                    text: json.submit_message 
                                },
                                position: { 
                                    my: "right center",
                                    at: "left center" 
                                }
                            }).qtip('show');
                            //close tooltip after 5 sec
                            /*setTimeout(function(){
                                $("#"+id+" [name='submit']").qtip("api").hide();
                            }, 5000);*/
                            if(id=="comment_form" && typeof(json.html)!="undefined")
                            {
                                $(".comments").html(json.html);
                                $("#comment_form [name='comment_parent_id']").val(0);
                                if(typeof(json.comment_id)!="undefined")
                                {
                                    var offset = $("#comment-" + json.comment_id).offset();
                                    $("html, body").animate({scrollTop: offset.top-10}, 400);
                                    if(typeof(json.change_url)!="undefined" && $.param.fragment()!=json.change_url.replace("#", ""))
                                        $("#comment_form [name='prevent_scroll']").val(1);
                                }
                                if(typeof(json.change_url)!="undefined" && $.param.fragment()!=json.change_url.replace("#", ""))
                                    $.bbq.pushState(json.change_url);
                                    //window.location.href = json.change_url;
                            }
                            $("#"+id)[0].reset();
                            $("#cancel_comment").css("display", "none");
                            $(".contact_form [name='department']").val("");
                            $(".contact_form .tabs_box_navigation_selected>span").text("Select department");
                        }
                    }

【讨论】:

  • 你是对的@Adeel ...由于验证输入的功能,默认行为确实被禁用。我遇到了另一个帖子,建议我用“jQuery”替换“$”作为摆脱“不是函数”错误的一种方式。它奏效了......现在我可以继续处理其余的表单错误(很多,主要是拼写错误等......)
  • 好的。如果它确实有助于将其标记为已选中。
猜你喜欢
  • 2013-01-20
  • 2017-01-01
  • 2016-03-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-06-21
相关资源
最近更新 更多