簡體   English   中英

如何根據FireFox中的月/日/年下拉列表獲取年齡

[英]How to get age based on month/day/year dropdown in FireFox

我試圖根據用戶在下拉列表中輸入的月份日期和年份字段來確定他們的年齡。 這在Chrome和其他瀏覽器中有效,但在Firefox中,我收到了無效的日期錯誤:

 jQuery('#cons_birth_date_YEAR,#cons_birth_date_MONTH,#cons_birth_date_DAY').on('change',function(){ var selectedYear=$('#cons_birth_date_YEAR').find('option:selected').val(); var selectedDay=$('#cons_birth_date_DAY').find('option:selected').val(); var selectedMonth=$('#cons_birth_date_MONTH').find('option:selected').val(); if(selectedYear!=0 && selectedMonth!=0 && selectedDay!=0) { var today = new Date(); var dob=new Date(selectedDay+"/"+selectedMonth+"/"+selectedYear); console.log(dob); var age = new Date(today - dob).getFullYear() -1970; $("#age").val(age); } if (age < 13) { alert('under 13'); } }); 
 <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <fieldset> <legend> <span class="aural-only cons_dob"></span> <span class="input-label survey-question-label cons_dob">Date of Birth:</span> </legend> <span class="input-container"> <span id="cons_birth_date_date" title="Date:"> <select name="cons_birth_date_MONTH" id="cons_birth_date_MONTH" title="Month"> <option value="0">Month </option> <option value="1" selected="selected">Jan</option> <option value="2">Feb</option> <option value="3">Mar</option> <option value="4">Apr</option> <option value="5">May</option> <option value="6">Jun</option> <option value="7">Jul</option> <option value="8">Aug</option> <option value="9">Sep</option> <option value="10">Oct</option> <option value="11">Nov</option> <option value="12">Dec</option> </select> <select name="cons_birth_date_DAY" id="cons_birth_date_DAY" title="Day"> <option value="0">Day </option> <option value="1">1</option> <option value="2" selected="selected">2</option> <option value="3">3</option> <option value="4">4</option> <option value="5">5</option> <option value="6">6</option> <option value="7">7</option> <option value="8">8</option> <option value="9">9</option> <option value="10">10</option> <option value="11">11</option> <option value="12">12</option> <option value="13">13</option> <option value="14">14</option> <option value="15">15</option> <option value="16">16</option> <option value="17">17</option> <option value="18">18</option> <option value="19">19</option> <option value="20">20</option> <option value="21">21</option> <option value="22">22</option> <option value="23">23</option> <option value="24">24</option> <option value="25">25</option> <option value="26">26</option> <option value="27">27</option> <option value="28">28</option> <option value="29">29</option> <option value="30">30</option> <option value="31">31</option> </select> <select name="cons_birth_date_YEAR" id="cons_birth_date_YEAR" title="Year"> <option value="0">Year </option> <option value="1997" selected="selected">1997</option> <option value="1998">1998</option> <option value="1999">1999</option> <option value="2000">2000</option> <option value="2015">2015</option> <option value="2016">2016</option> <option value="2017">2017</option> <option value="2018">2018</option> <option value="2019">2019</option> </select> </span> </span> </fieldset> 

如果用戶未滿13歲,此腳本將添加警報。 這在Chrome中有效,但在Firefox中,下面的行返回錯誤:Invalid Date

var dob=new Date(selectedDay+"/"+selectedMonth+"/"+selectedYear);

試試這個:

 var dateSTR = "2019-07-02";
 var dob = new Date(dateSTR.replace(/-/g,"/"));

您可以閱讀並檢查交叉瀏覽問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM