输入类型日期验证18岁以下

时间:2013-12-30 04:03:41

标签: javascript html5 validation

我在验证输入类型=“日期”时遇到问题。它不应该接受18岁以下。请你帮助我好吗?谢谢。

我谷歌搜索论坛我还没有找到答案。 我尝试在下一页使用PHP验证它,但我的教授告诉我,我必须在同一页面验证它。像onchange一样,它必须经过验证。

<input type="date" name="bday" id="bday" value="">

3 个答案:

答案 0 :(得分:2)

使用javascript。如果您想接受仅18岁及以上的生日,请尝试按照javascript代码。 将onblur="return dobcheck()"放入bday标记。

<script type="text/javascript">
function dobcheck()
{
    var birth = document.getElementById('bday')
    if(birth != "")
    {

        var record=document.getElementById('bday').value.trim();
        var currentdate=new Date();    
        var day1 = currentdate3.getDate();   
        var month1 = currentdate3.getMonth();
        month1++;     
        var year11 = currentdate3.getFullYear()-17;
        var year2= currentdate3.getFullYear()-100;   
        var record_day1=record.split("/");
        var sum=record_day1[1]+'/'+record_day1[0]+'/'+record_day1[2];  
        var current= month1+'/'+day1+'/'+year11;
        var current1= month1+'/'+day1+'/'+year2;
        var d1=new Date(current)
        var d2=new Date(current1)
        var record1 = new Date(sum);      
        if(record1 > d1)
        {

            alert("Sorry ! Minors need parential guidance to use this website");
            document.getElementById('bday').blur();
            document.getElementById('bday').value="";
            document.getElementById('bday').focus();
            return false;
        }
    } 
}
</script>

我希望你现在能得到它......

答案 1 :(得分:1)

如果您被允许使用HTML5,则非常简单。您只需使用max属性:

<input id="bday" type="date" max="1995-12-31" required="" />

如果你必须动态创建,你可以动态创建max属性。

我做了一个例子: http://jsfiddle.net/trixta/wpb54/ http://jsfiddle.net/trixta/wpb54/4/

答案 2 :(得分:1)

我知道为时已晚:D但可能会对其他人有所帮助:)。

    $(function(){
        var dtToday = new Date();
    
        var month = dtToday.getMonth() + 1;// jan=0; feb=1 .......
        var day = dtToday.getDate();
        var year = dtToday.getFullYear() - 18;
        if(month < 10)
            month = '0' + month.toString();
        if(day < 10)
            day = '0' + day.toString();
    	var minDate = year + '-' + month + '-' + day;
        var maxDate = year + '-' + month + '-' + day;
    	$('#dob').attr('max', maxDate);
    });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="date" id="dob">