javascript - 使用 dd/mm/yyyy 验证年龄

标签 javascript html

我正在尝试使用 JavaScript 来验证我的年龄验证表单,但它似乎不起作用......不知道为什么。

基本上输入出生日期:dd/mm/yyyy,我需要确保为了提交表格,该人的年龄在15 - 80..我尝试过这种方式验证,但似乎不起作用。

HTML

<label>
    Date of birth:
    <input type="text" name="birth date" id="DOB" 
           placeholder="dd/mm/yyyy" maxlength="10" pattern="\d{1,2}\/\d{1,2}\/\d{4}" 
           required="required"/>
</label>

Javascript

var birthDate = document.getElementById("DOB").value;

if (2019 - birthDate < 15 || 2019 - birthDate > 80) {
  errMsg =errMsg + "your age must be between 15 and 80\n";
  result = false;
}

if (errMsg !== "") {
  alert(errMsg);
}

return result;

最佳答案

因此,根据您的评论,您有一个这样的文本框:

<form>
    <input type="text" name="birth date" id="DOB" placeholder="dd/mm/yyyy" maxlength="10" pattern="\d{1,2}\/\d{1,2}\/\d{4}" required="required"/></label>
</form>

因此,document.getElementById("DOB").value;格式为 dd/mm/yyyy。

所以,如果您只是检查年份,这应该可以解决问题:

onload = function() {
    var form = document.getElementById("form"); //assuming this is your form's ID
    form.onsubmit = validate;
}

function checkAge() {
  var currentYear = new Date().getFullYear();
  var birthDate = document.getElementById("DOB").value;
  var errMsg = ""; //this line was missing from my code, and preventing it from working.

  //turning "dd/mm/yyyy" into an array of the form { "dd", "mm", "yyyy" }, and taking the "yyyy" part
  var birthYear = birthDate.split("/")[2];

  var age = currentYear - birthYear;
  if (age < 15 || age > 80) {
    errMsg =errMsg + "your age must be between 15 and 80\n";
    result = false;
  }

  if (errMsg !== "") {
    alert(errMsg);
    return false; //form won't submit
  }

  return true; //form will submit
}

如你所见,我还使用了getFullYear()这样我们就不会硬编码固定的当前年份。

但是如果你使用 <input type="date"> 可能会更干净元素而不是文本框。

关于javascript - 使用 dd/mm/yyyy 验证年龄,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55928829/

相关文章:

javascript - 使用上一个/下一个按钮在粘性元素之间滚动

javascript - 替换 unicode 字符

javascript - KineticJS stage.toDataURL() 适用于 mimeType png 但不适用于 jpeg

javascript - 如何将字符串拆分为 ',' 或 '[|]',除非 ',' 在 '{}' 中

javascript - 使用 Javascript 和 HTML 显示弹出窗口

javascript - 如何将 Google map 搜索框添加到我的自定义 map ?

Jquery 删除包含父元素的元素

javascript - 尝试访问 <Script> 中 div 的innerHTML,但结果未定义

javascript - 在 React 中动态生成的链接之外的 html 链接之间添加项目符号 (•)

html - 选择前后选择字体颜色