文本框接受日期's从1900 - 2050在javascript

本文关键字:1900 2050 javascript 日期 文本 | 更新日期: 2023-09-27 18:11:12

我有一个出生日期文本框。我在这里尝试的是用户应该能够在1900 - 2050的范围内输入日期。

我不想使用datepicker。请提建议

这是我的aspx:-

<asp:TextBox 
     ID="txtDtOfBirth" 
     runat="server" 
     ToolTip="Enter date in DD/MM/YYYY format"
     autocomplete="off" 
     Width="75" 
     MaxLength="10" 
     onblur="calculateAgeFromCalendar(), 
     dateformat(this.value, this.id)">
</asp:TextBox>

文本框接受日期's从1900 - 2050在javascript

请尝试一下。我认为这对你很有帮助。

function CheckDate(elm)
{
    var date  = $(elm).val();
    var year = date.split('/')[2];
    if(parseInt(year)>=1900 && parseInt(year)<=2050)
    {
        // Implement here logic
    }
    else
    {
        alert("Please add date between 1900 to 2050");
        console.log("Please add date between 1900 to 2050");
    }
}

此代码将检查有效的DD/MM/YYYY日期格式以及年份边界。

function dateformat() {
            var isValid = false;
            var minYear = 1900;
            var maxYear = 2050;
            var txtDtOfBirth = document.getElementById('txtDtOfBirth');
            var regex = new RegExp(/^(0[1-9]|1'd|2'd|3[01])'/(0[1-9]|1[0-2])'/(19|20)'d{2}$/);
            var isValid = regex.test(txtDtOfBirth.value);
            if (isValid) {
                var year = parseInt(txtDtOfBirth.value.split('/')[2]);
                if (year <= minYear || year >= maxYear) {
                    isValid = false;
                }
                else {
                    isValid = true;
                }
            }
            if (!isValid) {
                alert('Invalid date');
            }
}

使用

var dateFrom = "01/01/1900";
var dateTo = "31/12/2050";
$('#txtDtOfBirth').focusout(function () {
    ValidateDate()
})
function ValidateDate() {
var dateCheck = $('#txtDtOfBirth').val();
var d1 = dateFrom.split("/");
var d2 = dateTo.split("/");
var c = dateCheck.split("/");
   
var from = new Date(d1[2], d1[1] - 1, d1[0]); // -1 because months are from 0 to 11
var to = new Date(d2[2], d2[1] - 1, d2[0]);
var check = new Date(c[2], c[1] - 1, c[0]);
 $('#txtDtOfBirth').val(check.getDay()+'/'+(check.getMonth()+1)+'/'+check.getFullYear())// if user enter 31 feb it will insert march 1st 
if (check > from && check < to) {
    $('#txtDtOfBirth').css('border', '1px solid #0f0')
} else {
    $('#txtDtOfBirth').css('border', '1px solid #f00');
    $('#txtDtOfBirth').focus();
}
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type='text' id="txtDtOfBirth" placeholder='DD/MM/YYYY' />

在onblur中调用ValidateDate(),正如OP

中提到的