日期条目上的HTML文本字段验证

时间:2018-01-18 05:12:30

标签: javascript html forms validation textfield

我的问题是我还没有写过HTML字段验证,但是必须写一个检查文本输入字段是否有dd.mm.yyyy格式的日期条目,如果所以,如果日期在某个范围内。

如果这些条件中的任何一个不成立,光标应立即强制返回到输入字段,这样用户就可以正确地重复输入。

我知道我可以在jQuery-UI(datepicker)中编写代码,如果我有选择的话,这将是我的选择,但我的老板想要手动输入。

也许某人有链接到网络中的代码片段,到目前为止我还没有找到。

非常感谢任何帮助。

非常感谢您的支持。

konsti

1 个答案:

答案 0 :(得分:0)

You can refer to this link。 javascript中的日期验证功能是

function validatedate(inputText)
  {
  var dateformat = /^(0?[1-9]|[12][0-9]|3[01])[\/\-](0?[1-9]|1[012])[\/\-]\d{4}$/;
  // Match the date format through regular expression
  if(inputText.value.match(dateformat))
  {
  document.form1.text1.focus();
  //Test which seperator is used '/' or '-'
  var opera1 = inputText.value.split('/');
  var opera2 = inputText.value.split('-');
  lopera1 = opera1.length;
  lopera2 = opera2.length;
  // Extract the string into month, date and year
  if (lopera1>1)
  {
  var pdate = inputText.value.split('/');
  }
  else if (lopera2>1)
  {
  var pdate = inputText.value.split('-');
  }
  var dd = parseInt(pdate[0]);
  var mm  = parseInt(pdate[1]);
  var yy = parseInt(pdate[2]);
  // Create list of days of a month [assume there is no leap year by default]
  var ListofDays = [31,28,31,30,31,30,31,31,30,31,30,31];
  if (mm==1 || mm>2)
  {
  if (dd>ListofDays[mm-1])
  {
  alert('Invalid date format!');
  return false;
  }
  }
  if (mm==2)
  {
  var lyear = false;
  if ( (!(yy % 4) && yy % 100) || !(yy % 400)) 
  {
  lyear = true;
  }
  if ((lyear==false) && (dd>=29))
  {
  alert('Invalid date format!');
  return false;
  }
  if ((lyear==true) && (dd>29))
  {
  alert('Invalid date format!');
  return false;
  }
  }
  }
  else
  {
  alert("Invalid date format!");
  document.form1.text1.focus();
  return false;
  }
  }