我有用户表格,我想htat当用户输入出生日期,JQUERY来锻炼他们的年龄,如果他们超过35,它将显示隐藏的div。
到目前为止,我已经设法将其拼凑起来
$(document).ready(function() {
$('#dob').datepicker({
onSelect: function(value, ui) {
var today = new Date(),
dob = new Date(value),
age = new Date(today - dob).getFullYear() - 1970;
$('#age').text(age);
},
maxDate: '+0d',
yearRange: '1960:2010',
changeMonth: true,
changeYear: true
});
if ($(age).val() >= 35) {
// do something
alert("35");
}else{
alert("not 35");
}
});
但是它显示了页面加载时的警报,我确定我只是把东西放在错误的地方,但我不知道是什么。 我已将警报仅用于发送正在运行的文本,我将用show()替换它,我将其工作。 总而言之,我实际上并没有为使用日期选择器而感到困扰,我在一个例子中找到了它,所以我保留了它,如果它更容易用它做,那么htats罚款。
感谢。
答案 0 :(得分:0)
您的情况错位且您使用$(age)
代替age
或$('#age').val()
$(document).ready(function () {
$('#dob').datepicker({
onSelect: function (value, ui) {
var today = new Date(),
dob = new Date(value),
age = new Date(today - dob).getFullYear() - 1970;
$('#age').text(age);
if (age >= 35) {
// do something
alert("35");
}
else {
alert("not 35");
}
},
maxDate: '+0d',
yearRange: '1960:2010',
changeMonth: true,
changeYear: true
});
});
顺便说一句,这不是适合年龄的正确计算。你只使用年份。
答案 1 :(得分:0)
你有块:
if ($(age).val() >= 35) {
// do something
alert("35");
}else{
alert("not 35");
}
在 onSelect
函数结束后 。您需要将该块移动到onSelect
或者将其放入更改事件处理程序。
例如:
...
onSelect: function(value, ui) {
var today = new Date(),
dob = new Date(value),
age = new Date(today - dob).getFullYear() - 1970;
$('#age').text(age);
if (age >= 35) {
// do something
alert("35");
}else{
alert("not 35");
}
},
...
修改强> 省略号表明我遗漏了与原始示例不同的代码。这是完整的示例:
$(document).ready(function() {
$('#dob').datepicker({
onSelect: function(value, ui) {
var today = new Date(),
dob = new Date(value),
age = new Date(today - dob).getFullYear() - 1970;
$('#age').text(age);
if (age >= 35) {
// do something
alert("35");
}
else {
alert("not 35");
}
},
maxDate: '+0d',
yearRange: '1960:2010',
changeMonth: true,
changeYear: true
});
});