0

我想知道一个日期是否已经过去,如果有,我会让输入框不可编辑。

我的输入框代码是:

<input id="inserviceInputId" type="text" value="09/05/2003" name="inserviceInput" style="width:7em">

以及我目前拥有的 Dojo 代码:

var date1 = new Date;
    dojo.query("[name=inserviceInput]").forEach(function(evnt,i){

    console.log(evnt.value)

    });

所以,我确实在这里得到了输入框的值。但问题是如何减去今天的日期和值中的日期。

我在这里先向您的帮助表示感谢。

4

2 回答 2

0

首先,我认为您的语法不正确。看起来您正在尝试编写事件处理程序( function(evnt, i) )而不是对来自节点的值执行一些操作。

我在下面附上了一些更正的代码,为了解释我添加了内联注释:

dojo.query("input[name='inserviceInput']").forEach(function(node){
   var date1 = new Date();  // get the current date and time

   var date2 = new Date(node.value); // turn the input from the input field into a date

   if (date1>date2) { // compare the two dates, 

     //if the current date is larger than the date from the input field... 
     // do something here  
   } 

});

于 2013-02-19T16:37:50.780 回答
0

使用 将dojo/date/locale值解析为 javascript Date 对象,然后只比较日期对象。

require(["dojo/query", "dojo/date/locale"], function(query, locale){

  query("[name=inserviceInput]").forEach(function(node){

    var dtNow = new Date();
    var dtValue = locale.parse(node.value, {
        selector: 'date',
        datePattern: 'dd/MM/yyyy'
    });

    // validation
    if(dtValue < dtNow) {
      // error condition...
    }

  });
});

用 JavaScript 比较两个日期

于 2013-02-19T16:41:52.607 回答