javascript - 使用 Emailjs 时,我的收件箱没有收到表单输入信息

标签 javascript html forms email

我最近开始使用 Emailjs 将表单输入信息接收到我自己的电子邮件地址。一切似乎都设置得很好,但(经过几个小时的研究)似乎无法弄清楚为什么我没有收到任何输入信息。任何帮助将不胜感激!

HTML 代码

    <!--SCRIPT FOR EMAILjs-->

    <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/emailjs-com@2.3.2/dist/email.min.js"></script>
    <script type="text/javascript">
        (function () {
            emailjs.init("user_xxxxxxxxxxxxxxxxxxxxx");
        })();
    </script>


    <!--LOCATION FORM-->

    <form class="contact_form" onsubmit="return sendMail(this);">
        <input type="text" name="full_name" class="form_inputs fullName_input" autocomplete="off" placeholder="Full Name"
            onfocus="this.placeholder = ''" onblur="this.placeholder = 'Full Name'">

        <input type="text" name="emailAddress" class="form_inputs emailAddress_input" autocomplete="off"
            placeholder="Email Address" onfocus="this.placeholder = ''" onblur="this.placeholder = 'Email Address'">

        <p class="cleaningLocationTitle">Cleaning Location:</p>

        <input type="text" name="streetAddress" class="form_inputs streetAddress_input" autocomplete="off"
            placeholder="Street Address" onfocus="this.placeholder = ''" onblur="this.placeholder = 'Street Address'"
            required>

        <input type="text" name="townCity" class="form_inputs townCity_input" autocomplete="off" placeholder="Town/City"
            onfocus="this.placeholder = ''" onblur="this.placeholder = 'Town/City'" required>

        <input type="text" name="postcode" class="form_inputs postcode_input" autocomplete="off" placeholder="Postcode"
            onfocus="this.placeholder = ''" onblur="this.placeholder = 'Postcode'">

        <textarea class="short_description_box" name="cleanRequest"
            placeholder="Please give a short description of your cleaning needs. i.e Washing dishes, vacuuming throughout..."
            onfocus="this.placeholder = ''"
            onblur="this.placeholder = 'Please give a short description of your cleaning needs. i.e Washing dishes, vacuuming throughout...'"></textarea>
    </form>


    <div class="findcleaner_buttonWrap">
        <button class="findcleaner_button" type="submit" onClick="location.href='mapsAPI.html'">Find me a cleaner
        </button>
    </div>

JAVASCRIPT 代码

function sendMail(contactForm) {
    emailjs.send("gmail", "contact_form", {
            "full_name": contactForm.fullname.value,
            "user_email": contactForm.emailAddress.value,
            "street_address": contactForm.streetAddress.value,
            "town_city": contactForm.townCity.value,
            "user_postcode ": contactForm.postcode.value,
            "clean_request  ": contactForm.cleanRequest.value,
        })
        .then(
            function (response) {
                console.log("success", response);
            },
            function (error) {
                console.log("FAILED", error);
            }
        )
}

最佳答案

在您的表单中,代码期望提交表单以触发 EmailJs。但是,表单本身没有提交按钮(任何类型)来触发提交。相反,您在表单外部有一个提交按钮,用于将访问者重定向到 mapsAPI.html

我将提交按钮移至表单中,从按钮中删除了 onclick 处理程序,并将位置重定向添加到 emailjs 函数的成功中。

  <!--SCRIPT FOR EMAILjs-->

    <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/emailjs-com@2.3.2/dist/email.min.js"></script>
    <script type="text/javascript">
        (function () {
            emailjs.init("user_xxxxxxxxxxxxxxxxxxxxx");
        })();
    </script>


    <!--LOCATION FORM-->

    <form class="contact_form" onsubmit="return sendMail(this);">
        <input type="text" name="full_name" class="form_inputs fullName_input" autocomplete="off" placeholder="Full Name"
            onfocus="this.placeholder = ''" onblur="this.placeholder = 'Full Name'">

        <input type="text" name="emailAddress" class="form_inputs emailAddress_input" autocomplete="off"
            placeholder="Email Address" onfocus="this.placeholder = ''" onblur="this.placeholder = 'Email Address'">

        <p class="cleaningLocationTitle">Cleaning Location:</p>

        <input type="text" name="streetAddress" class="form_inputs streetAddress_input" autocomplete="off"
            placeholder="Street Address" onfocus="this.placeholder = ''" onblur="this.placeholder = 'Street Address'"
            required>

        <input type="text" name="townCity" class="form_inputs townCity_input" autocomplete="off" placeholder="Town/City"
            onfocus="this.placeholder = ''" onblur="this.placeholder = 'Town/City'" required>

        <input type="text" name="postcode" class="form_inputs postcode_input" autocomplete="off" placeholder="Postcode"
            onfocus="this.placeholder = ''" onblur="this.placeholder = 'Postcode'">

        <textarea class="short_description_box" name="cleanRequest"
            placeholder="Please give a short description of your cleaning needs. i.e Washing dishes, vacuuming throughout..."
            onfocus="this.placeholder = ''"
            onblur="this.placeholder = 'Please give a short description of your cleaning needs. i.e Washing dishes, vacuuming throughout...'"></textarea>



    <div class="findcleaner_buttonWrap">
        <button class="findcleaner_button" type="submit">Find me a cleaner
        </button>
    </div>

</form>

function sendMail(contactForm) {
    emailjs.send("gmail", "contact_form", {
            "full_name": contactForm.fullname.value,
            "user_email": contactForm.emailAddress.value,
            "street_address": contactForm.streetAddress.value,
            "town_city": contactForm.townCity.value,
            "user_postcode ": contactForm.postcode.value,
            "clean_request  ": contactForm.cleanRequest.value,
        })
        .then(
            function (response) {
                location.href='mapsAPI.html
                console.log("success", response);
            },
            function (error) {
                console.log("FAILED", error);
            }
        )
}

关于javascript - 使用 Emailjs 时,我的收件箱没有收到表单输入信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61484115/

相关文章:

javascript - 在 hta 应用程序中使用具有滚动效果的 HTML 和 Javascript 显示当前日期和时间

javascript - JS : Fetch string from array that matches line in form-input

javascript - Jquery - 获取父元素的数据ID

javascript - 从数组填充 ng-pattern

html - 为 block 设置固定高度会打破 100% 的宽度

javascript - 自定义文件夹浏览器/上传文件对话框

ruby-on-rails - 无法保存普通的旧多对一嵌套表单

django - 在 django 中引用模板中的动态数量的字段

javascript - 使用 Firebase 登录的 Facebook API 调用

javascript - 在所有 promise 解决后返回