2015-09-04 62 views
3

我有一個出生日期的文本框。我在這裏嘗試的是,用戶應該能夠輸入日期範圍從1900年至2050年。文本框接受日期從1900年 - 2050年在javascript

我不想使用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> 
+0

甚至沒有jquery datepicker? – Shaharyar

+0

@Shaharyar:不,我沒有使用任何'datepicker' – BNN

+0

提供你試過的JS和HTMl代碼。用ASP代碼人們怎麼能幫助你 –

回答

2

請嘗試this.I認爲這是對你非常有幫助。

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"); 
    } 
} 
+0

我應該調用這個函數並檢查文本框的哪個屬性? – BNN

+0

在checkdate函數中傳遞您的元素。 –

+0

我已經有'onblur'上的一個功能,所以你可以幫助我那個..也檢查我的小提琴的更多信息http://jsfiddle.net/xxqzkfza/ – BNN

0

使用此

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' />

呼叫ValidateDate()中的onblur當你在OP

1

此代碼中提到將檢查有效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'); 
      } 
} 
相關問題