请参阅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”。
答案 0 :(得分:0)
您的代码中存在两个问题。
在<input type="date">
代码中输入日期值的正确格式为yyyy-mm-dd
。其余格式不起作用。
点击here获取文档。
需要注意的一点是显示的日期格式与实际值不同 - 显示的日期格式将根据用户浏览器的设置区域设置进行选择,而日期值的格式始终为yyyy-mm-dd。 / p>
.val()
内的回调函数应返回一个值,该值将设置为输入标记值。在您的代码中,该回调函数不返回任何内容。尝试使用以下
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;
});