我使用jQuery Datepicker作为出生日期输入。
如果此人的年龄小于5岁,我想在输入字段上方显示或附加一些文字。
所以我猜我会把今天的日期变成一个变量,今天的日期减去5年,然后说:如果他们选择的日期介于今天和(今天的日期减去5年)之间,那么就显示此消息。但我正在努力如何做到这一点!
答案 0 :(得分:0)
在DateField上添加名为dateChange()的OnChange事件
function dateChange() {
var d = new Date();
var currYear = d.getFullYear(); -- Returns the year
var dateSelected = document.getElementfromId("<your Date Element ID>")
-- you can use parsing based on the date format you use in datePicker.
-- find the difference between currYear and year user choose
if (diffrence < 5){
-- write your code
}
}
答案 1 :(得分:0)
您可以使用datepicker的onSelect事件。不幸的是,只要选择了日期,onSelect就会触发,即使它没有改变。这是datepicker中的一个设计缺陷:它始终触发onSelect(即使没有任何更改),也不会在更改时触发基础输入上的任何事件。 (如果查看该示例的代码,我们正在侦听更改,但它们不会被提升。)当事情发生变化时,它可能应该在输入上触发事件(可能是通常的更改事件,或者可能是日期选择器) - 特定的一个)。如果您愿意,当然,您可以在输入火上进行更改事件:
$(".date").datepicker({
onSelect: function() {
$(this).change();
}
});
这将触发通过jQuery连接的任何处理程序的基础输入的更改。但同样,它总是触发它。如果您只想触发真正的更改,则必须保存以前的值(可能通过数据)并进行比较。
使用以下功能查找两个日期之间的差异。
// datepart: 'y', 'm', 'w', 'd', 'h', 'n', 's'
Date.dateDiff = function(datepart, fromdate, todate) {
datepart = datepart.toLowerCase();
var diff = todate - fromdate;
var divideBy = { w:604800000,
d:86400000,
h:3600000,
n:60000,
s:1000 };
return Math.floor( diff/divideBy[datepart]);
}