验证日期功能

时间:2018-03-08 12:48:02

标签: javascript html

我有一个简单的验证日期似乎不起作用。我想确保开始日期不大于结束日期。

function validateDate() {
  var d1 = new Date.parse(document.getElementsByName("dt1").value);
  var d2 = new Date.parse(document.getElementsByName("dt2").value);

  if (d1.getTime() > d2.getTime())
    alert("Start date cannot be greater than End date");

}
<label for="dt1">Start Date : </label><input type="date" id="dt1">
<label for="dt2">End Date : </label><input type="date" id="dt2" onfocusout="validateDate()">

我附上了一个小提琴来更好地证明这一点:https://jsfiddle.net/63g99gk8/1/

我是一个完整的新手,我喜欢做任何建议和评论。

2 个答案:

答案 0 :(得分:0)

代码中存在一些错误。您可以直接创建日期对象。并且还使用getElementById()来获取值。

&#13;
&#13;
function validateDate(e) {

	var d1 = new Date(document.getElementById("dt1").value);
	var d2 = new Date(document.getElementById("dt2").value)

	if (d1.getTime() > d2.getTime())
		alert("Start date cannot be greater then End date");

}
&#13;
<label for="dt1">Start Date : </label>
<input type="date" id="dt1">
<label for="dt2">End Date : </label>
<input type="date" id="dt2" onchange="validateDate(event);">
&#13;
&#13;
&#13;

答案 1 :(得分:0)

您正在使用getElementsByName返回NodeList而不仅仅是特定元素。看到您使用id代替getElementById

此外new Date.parse无效。使用new Date()代替将日历的值作为参数new Date(value)传递给它。

有关详细信息,请参阅Date上的文档。

&#13;
&#13;
var validateDate = function() {
	var d1 = new Date(document.getElementById("dt1").value);
	var d2 = new Date(document.getElementById("dt2").value);
  
	if (d1.getTime() > d2.getTime())
		alert("Start date cannot be greater then End date");

}
&#13;
<label for="dt1">Start Date : </label><input type="date" id="dt1">
<label for="dt2">End Date : </label><input type="date" id="dt2" onfocusout="validateDate()">
&#13;
&#13;
&#13;