javascript - 电子邮件无效 > 需要用户留在同一页面

标签 javascript html validation email input

我创建了一个捕获用户电子邮件地址的 Web 表单。我已经设置了需要满足的条件,以便用户能够提交他们的电子邮件地址,并且我能够成功返回错误消息。

但是,如果用户输入无效代码,他们在关闭错误后仍会被引导至下一个屏幕。

HTML:

        <form class="watch-films" onsubmit="location.href='thankYou_watch.html'">
            <p class="paid_in_full">Email</p>
            <input class="field2" name="viewerEmail" id="viewerEmail" placeholder="<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="9be2f4eee9fef6faf2f7dbfee3faf6ebf7feb5f8f4f6" rel="noreferrer noopener nofollow">[email protected]</a>" required>
            <div>
                <button type="submit" class="button_done" value="submit">Submit</button>
            </div>
        </form>

Javascript:

const watchForm = document.querySelector('.watch-films'); 
const feedback = document.querySelector('.feedback'); 
const viewerEmailPattern = /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/; 


watchForm.addEventListener('submit', e=> {
    e.preventDefault(); 
    //validation
    const viewerEmail = watchForm.viewerEmail.value; 

    if(viewerEmailPattern.test(viewerEmail)){
      return (true)
    } else {
      alert("You have entered an invalid email address!")
      return (false); 
    }

    console.log(watchForm.viewerEmail.value);
});  

感谢任何帮助!

最佳答案

您有一个提交事件处理程序,无论其他提交事件处理程序的结果是什么,它都会将浏览器重定向到感谢页面。

onsubmit="location.href='thankYou_watch.html'"

由于它会重定向,因此会停止提交数据,因此您不会收集电子邮件地址。

彻底摆脱它。

让读取提交的表单数据的服务器端进程生成感谢页面。

关于javascript - 电子邮件无效 > 需要用户留在同一页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59813387/

相关文章:

将步骤 ="1"放入 "datetime-local"输入类型时,jQuery 验证失败

javascript - 异步 ngOptions

javascript - 使用 Javascript 函数设置 title 属性

javascript - 我想要一个带有隐藏数字的输入

html - 使用 CSS 查询排列元素

c# - MembershipProvider 的密码验证器?

javascript - 为什么 iPad/iOS 上的 native 相机分辨率与 getUserMedia 存在差异?

javascript - 如何将查询字符串添加到页面网址?

javascript - 强制 HTML 选择元素使用用户代理 css 和箭头图像

ajax - AJAX 上的 Parsley.js 触发错误