【问题标题】:Validate Date Function [duplicate]验证日期函数 [重复]
【发布时间】:2018-08-16 19:55:09
【问题描述】:

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

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/

我是 javascript 的新手,如果有任何建议和 cmets,我将不胜感激。

【问题讨论】:

  • Date.parse 不是构造函数,因此 new 无效。 getElementsByName 应该是 getElementById
  • 你是怎么输入的?
  • 总是在控制台看看。在那里你会发现错误Uncaught TypeError: Date.parse is not a constructor
  • 你需要知道的是编程中很重要的事情。如何调试。然后你就会得救。所以你不必让别人调试你的代码。

标签: javascript html


【解决方案1】:

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

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");

}
<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);">

【讨论】:

    【解决方案2】:

    您正在使用getElementsByName,它返回一个NodeList,而不仅仅是特定元素。看到你有一个id,请改用getElementById

    另外new Date.parse 无效。使用new Date() 而不是将日历的值作为参数new Date(value) 传递给它。

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

    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");
    
    }
    <label for="dt1">Start Date : </label><input type="date" id="dt1">
    <label for="dt2">End Date : </label><input type="date" id="dt2" onfocusout="validateDate()">

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-10-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-12-19
      相关资源
      最近更新 更多