年龄检查和jquery

时间:2010-11-24 17:31:56

标签: javascript jquery verification

有没有人有任何关于如何实现基于jQuery或javascript的年龄检查器的可靠示例?我希望将某人发送到他们需要在日,月和年进入的页面,每天至少一次他们点击网站上的任何页面。一旦他们确认为18,那么如果他们返回,他们将不会再次被纠缠,直到第二天。

有什么想法吗?

3 个答案:

答案 0 :(得分:4)

基于cookie的解决方案似乎合乎逻辑,因为您可以通过编程方式从JavaScript修改它们,并且可以设置它们的到期时间。在纯JavaScript中计算日期可以这样完成:

var millisPerYear = 1000 * 60 * 60 * 24 * 365;
var birthdate = new Date(year, month, day); // from user input.
var age = ((new Date().getTime()) - birthdate.getTime()) / millisPerYear;
// Now set the "age" cookie.

剩下的就是服务器端响应处理程序根据请求代理中“age”cookie的值有条件地返回内容。

答案 1 :(得分:0)

网上似乎有许多用于实现类似功能的现有资源。所有这些都创建了一个cookie,其中包含由用户持有的出生日选择器,并且可以设置为在一天后过期。显然,如果您的用户没有启用Cookie,这可能会出现问题。以下是几个例子。

http://www.webdesignforums.net/php-67/age_verification_script-30188/index2.html

http://www.techerator.com/2010/09/how-to-perform-age-verification-with-jquery-and-cookies-mmm-cookies/

答案 2 :(得分:-1)

有一个名为DateJS的精彩日期库。它使日期操作非常简单。

当然,您的第一步是解析提供的日期。 DateJS提供了许多解析功能,例如:

Date.parse("Mar 3 2010");
Date.parse('March 20th 1973');
Date.parse("03 12 2010");

解析完日期后,您可以将其与18年前的日期进行比较。使用DateJS

也很容易
var userBDay = Date.parse("Mar 3 1970");
var eighteenYearsAgo = (18).years().ago();
var is18 = (userBDay >= eighteenYearsAgo);

您当然假设用户是诚实的。更不用说JS可以被禁用,或者修改客户端。但这是一个完全不同的讨论。

编辑:忘了你提到每天只进行一次验证。这需要:

  • Cookie(客户端)
  • HTML5 LocalStorage(客户端)
  • 会话,可以在页面呈现时或通过AJAX请求提供最后一次验证。 (服务器端w /客户端组件)