2013-02-22 35 views
0

我有用户表单,并且当用户输入出生日期时,我想要htat,JQUERY来锻炼他们的年龄,如果他们超过35岁,它将显示一个隐藏的div。JQUERY从DOb获得年龄并显示隐藏的单元格

到目前为止,我已经成功地拼凑了一起

 $(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

退房在这个问题上的计算时代一个很好的解决方案公认的答案(也占闰年):http://stackoverflow.com/questions/4060004/calculate -age-in-javascript 以及将它绑定到jQuery的答案:http://stackoverflow.com/questions/5925068/jquery-calculating-age-based-on-dob – Jack 2013-02-22 23:37:07

回答

0

你有块:在onSelect功能

if ($(age).val() >= 35) { 
    // do something 
    alert("35"); 
}else{ 
    alert("not 35"); 
} 

末。您需要将该块移入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 
    });  
}); 
+0

感谢您的帮助,但现在datepicker不显示.. 这里是我有什么http://jsfiddle.net/EbLFz/ – 2013-02-23 13:22:27

+0

啊,你把我从字面上看得太过分了。 :)代码中的......表明我忽略了不需要更改的部分。我编辑了我的答案以包含完整的解决方案。 – dgvid 2013-02-23 14:50:13

+0

多数民众赞成在更好的,我可以发誓我补充了其他位......感谢您的帮助! – 2013-02-23 15:43:06

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 
    }); 
}); 

顺便说一句,这不是年龄的权力计算。你只使用年份。