WordPress的仅post ajax形式给jQuery错误?

时间:2018-11-01 19:24:33

标签: jquery wordpress-theming ajaxform

我有一个wordpress网站,该网站具有ajax新闻通讯注册表格。在首页上,所有内容均无错误:-)在博客页面上,出现以下错误:

[错误] TypeError:e.indexOf不是函数。 (在'e.indexOf(“”)'中,'e.indexOf'未定义)     (匿名函数)(jquery-3.3.1.min.js:2:31048)

[错误] TypeError:a.parent(“ a”)。size不是函数。 (在'a.parent(“ a”)。size()'中,'a.parent(“ a”)。size'未定义)     (匿名函数)(jquery-3.3.1.min.js:2:31048)

HTML:

<div class="newsletter-section">
        <div id="form-messages"></div>

    <div class="form-div d-flex justify-content-center">
        <form id="ajax-contact" method="POST" action="mailer.php">

            <input type="text" class="" id="email" name="email" required placeholder="Sign up for our newsletter">
            <div class="btn-center">
                <button type="submit">Sign up</button>
            </div>
        </form>

    </div>  
</div>

代码:

$(function() {

// Get the form.
var form = $('#ajax-contact');

// Get the messages div.
var formMessages = $('#form-messages');

// Set up an event listener for the contact form.
$(form).submit(function(e) {
    // Stop the browser from submitting the form.
    e.preventDefault();

    // Serialize the form data.
    var formData = $(form).serialize();

    // Submit the form using AJAX.
    $.ajax({
        type: 'POST',
        url: $(form).attr('action'),
        data: formData
    })
    .done(function(response) {
        // Make sure that the formMessages div has the 'success' class.
        $(formMessages).removeClass('error');
        $(formMessages).addClass('success');

        // Set the message text.
        $(formMessages).text(response);

        // Clear the form.
        $('#email').val('');
    })
    .fail(function(data) {
        // Make sure that the formMessages div has the 'error' class.
        $(formMessages).removeClass('success');
        $(formMessages).addClass('error');

        // Set the message text.
        if (data.responseText !== '') {
            $(formMessages).text(data.responseText);
        } else {
            $(formMessages).text('Oops! Er loopt iets fout. Je boeking is niet verzonden.');
        }
    });

});

});

有人可以帮助我吗?

谢谢你, 弗雷德

1 个答案:

答案 0 :(得分:0)

似乎我必须以表格形式提供php脚本的绝对路径。它工作正常!感谢您的关注。