预订过程中的电子邮件Id捕获
Email Id capture in reservation process
我有一个html页面,其中包含注册表单字段,如电子邮件地址等。注册过程有五个步骤。在第一步中,表单有一个电子邮件地址字段。
我想要的是,如果用户输入了一个电子邮件地址,并出于某种原因离开了表单,在一段时间后,比如15分钟后,我想捕获该电子邮件地址并将其发送到服务器。因为他们中的一些人中途离开了预订流程。我想捕捉他们,即使他们没有完成预订过程。我只是想用定时器之类的东西来捕捉那个电子邮件地址。我使用了onblur()事件并编写了一些代码。但我需要一些帮助来解决这个问题。
提前感谢,
您想要一个返回电子邮件地址的ajax调用。这并不完美,但可以让你大致了解你需要做什么。
// When the document is loaded do something.
$(document).ready(function(){
// Do something after 5 minutes (300000 seconds)
setTimeout('captureEmail',300000)
});
function captureEmail()
{
// Serialize the form data and send to captureEmail.php
$('#formId').ajax({
url: "captureEmail.php",
data: this.serialize(),
success: function(){
$(this).addClass("done");
}
});
}
实际上有几十种方法可以做到这一点。
如果他们从向导的第一步进入第二步,您可以将电子邮件地址捕获到服务器中的一个表中。我会按照一个表格的行做一些事情,这个表格有电子邮件地址、注册的唯一id和时间戳,然后你可以有一个服务来轮询表格,并将其与完成的注册表格进行比较,然后将这些电子邮件存储在某个地方。
另一个选项是javascript函数,该函数在页面退出或浏览器卸载时会触发一个更新方法,该方法会插入到表中。
或者,您可以使用jquery/ajax,这样当他们离开电子邮件字段时,它会验证这是一种有效的电子邮件格式,如果是这样,就会启动一种更新方法或三者的组合。
首先,你需要决定在什么时候捕获电子邮件地址,然后看看对你开放的机制。即当从一个步骤前进到下一个步骤时的支柱。或者在页面上触发事件时使用ajax/jquery。
我会使用"thenetim"答案,但会更改
--setTimeout
应该启动电子邮件文本框的onkeydown
——因为在进行ajax调用之前,他会知道有些数据已经存在。。
--最好在发送数据之前使用Regex检查电子邮件的有效性
无论数据是否存在,每5分钟调用一次ajax,也不检查输入的数据是否是完整的电子邮件id,这不仅会向服务器发送大量请求,而且最终可能会存储ksanads@
等垃圾值!!
不过,一旦在服务器中获得id,就可以检查id的有效性,但最好从客户端获取有效数据,而不是用可能无效的数据重载服务器。。
- 未捕获错误:元素缓存中id为x的DOM元素与DOM中的元素不同
- 使用jQuery捕获没有ID的字段上的更改事件
- jQuery if 语句未捕获 #ID
- 我得到未捕获的类型错误:无法读取属性'选项'即使定义了元素id,也为null
- Meteor Update集合-未捕获错误:不允许.不受信任的代码只能通过ID更新文档.[403]
- 使用 JS 捕获链接 ID,然后定向到链接
- 未捕获的语法错误:意外的令牌 .AKA 如何在 jQuery 中检查 ID
- 未捕获的引用错误: 未定义导出 ID
- 在具有相同 id 的多个选择标签中捕获选择标签的选定项
- 未捕获的异常:每个数据元素都必须实现一个唯一的“id”属性slick.dataview.js
- 使用 Javascript 捕获会话 ID
- 从具有相同名称的多个 ID 捕获数据
- 未捕获错误:断言失败:尝试注册具有已在使用的 ID 的视图:名称
- jQuery函数未捕获动态生成的ID
- 捕获阵列中ID为的元素上的单击
- 未捕获的错误:无法为每个类型实例化多个具有相同id的Backbone.RelationalModel
- 预订过程中的电子邮件Id捕获
- 用id捕获搜索后的行
- 如何从表体单击事件捕获行id
- 在Google标签管理器中捕获Hotjar用户ID谷歌分析