0

我有用户表单,当用户输入出生日期时,我希望 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() 替换它,我让它工作。平心而论,我实际上并没有为拥有日期选择器而烦恼,它在我发现的一个例子中,所以我保留了它,如果它更容易做到,那么很好。

谢谢。

4

2 回答 2

0

Your condition is misplaced and you were using $(age) instead of age or $('#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
    });
});

By the way, this is not the right calculation for the age. You only use the year.

于 2013-02-22T23:37:14.043 回答
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
    });    
});
于 2013-02-22T23:38:27.513 回答