2013-02-22 71 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 
    }); 
}); 

順便說一句,這不是年齡的權力計算。你只使用年份。