文本框接受日期'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>
请尝试一下。我认为这对你很有帮助。
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