JQUERY从DOb&;获取年龄;显示隐藏单元格

JQUERY从DOb&;获取年龄;显示隐藏单元格,jquery,Jquery,我有一个用户表单,我希望htat在用户输入出生日期时,JQUERY计算他们的年龄,如果他们超过35岁,它将显示一个隐藏的div 到目前为止,我已经设法把这件事拼凑起来了 $(document).ready(function() { $('#dob').datepicker({ onSelect: function(value, ui) { var today = new Date(), dob = new Date(valu

我有一个用户表单,我希望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()替换它,我让它工作起来。 平心而论,我并不是真的为拥有日期选择器而烦恼,它就在我找到的一个例子中,所以我保留了它,如果去掉它更容易,那就好了


谢谢

您的病情错位,您使用的是
$(年龄)
而不是
age
$(“#年龄”).val()

顺便说一下,这不是对年龄的正确计算。您只使用年份。

您有块:

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");
    }
},
...

编辑 省略号表示我省略了与原始示例相同的代码。以下是完整的示例:


查看关于这个问题的公认答案,找到一个计算年龄的好方法(也可以考虑闰年):这里的答案是将其与jQuery绑定:谢谢您的帮助,但是现在日期选择器没有显示。。这就是我所拥有的啊,你对我的理解有点过于字面化了。:)这个在代码中是为了表明我遗漏了不需要更改的部分。我已经编辑了我的答案以包含完整的解决方案。那更好,我可以发誓我添加了另一部分。。。谢谢你的帮助!如果你对这个答案感到满意,别忘了把它标为正确答案。
...
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
    });    
});