根据日期添加课程时日期消失

时间:2017-12-27 03:20:07

标签: jquery date

请参阅fiddle。 (警报仅供参考。)

使用Chrome时,日期显示为mm / dd / yyyy(空),但在IE中它们显示正确,直到转到下一个。

班级正确,但日期消失了。

如何保留日期?

var now = new Date();
alert(now);
$('input[type=date]').val(function(i, v) {
  var myDate = new Date(v);
  if (now > myDate) {
    $(this).addClass('expired');
  }
  alert(myDate);
});

我尝试过不同的日期格式:

<tr id="1">
  <td>
     <input type="date" class="expiration-date" value="12-28-2017" />
     <input type="date" class="expiration-date" value="12/12/2017" />
     <input type="date" class="expiration-date" value="2016-02-21" />
  </td>
</tr>

CSS:

.expiration-date {
  color: green;
}

.expired {
  color: red;
}

Updated code有效。谢谢你的“回归v”。

1 个答案:

答案 0 :(得分:0)

您的代码中存在两个问题。

  1. <input type="date">代码中输入日期值的正确格式为yyyy-mm-dd。其余格式不起作用。

    点击here获取文档。

      

    需要注意的一点是显示的日期格式与实际值不同 - 显示的日期格式将根据用户浏览器的设置区域设置进行选择,而日期值的格式始终为yyyy-mm-dd。 / p>

  2. .val()内的回调函数应返回一个值,该值将设置为输入标记值。在您的代码中,该回调函数不返回任何内容。尝试使用以下

  3. 替换代码
    var now = new Date();
    alert(now);
    $('input[type=date]').val(function(i, v) {
      var myDate = new Date(v);
      if (now > myDate) {
        $(this).addClass('expired');
      }
      alert(myDate);
      return v;
    });
    
相关问题