JQUERY从DOb&获得Age显示隐藏的细胞

时间:2013-02-22 23:32:37

标签: jquery

我有用户表格,我想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罚款。

感谢。

2 个答案:

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