繁体   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