2013-02-03 106 views
0

這個問題與其他問題非常相似,但並不完全相同 - 因此請認真對待。Jquery UI datePicker日期範圍不限於附加的輸入

我在一個字段上使用了一個datePicker,比如生日 - 我只將範圍限制爲過去的日期。 我需要驗證日期。輸入不是隻讀的,我不希望它是。

$(element).datepicker({ 
     dateFormat: dateFormat, 
     changeMonth: true, 
     changeYear: true, 
     yearRange: "1900:2050", 
     maxDate: new Date, 
     constrainInput: "true", 
     currentText:"Today", 
     showButtonPanel: true, 
     onClose: function (dateText, inst){ 
      dPickerDate=$('#'+this.id).datepicker("getDate"); 
      pDate=$.datepicker.formatDate(dateFormat, dPickerDate); 
      if(dateText!=pDate) 
       { 
       $('#errorFor'+this.id).removeClass("hidden"); 
       } 
      else 
       { 
        //do some calculations to save the date... for internal purposes 
            } 

    }); 

這個想法是我檢查輸入的日期是否可以在日期選擇器中選擇 - 否則表示它是無效的。爲驗證目的而工作良好。

問題是datePicker允許我輸入不在日期範圍內的日期。當在fireBug中調試時,我可以看到datePicker的值實際上是無效的未來日期,即使它沒有顯示在選定的datePicker中。

任何想法?在此先感謝:)

回答

0

是的,因爲你沒有把任何輸入驗證。即使你的yearRange是1900:2050,但這並不意味着用戶不能通過輸入鍵盤輸入其他年份。我建議使日期欄只讀,以便它只能由datepicker UI訪問,或者可以創建一個函數來檢查用戶輸入的日期。

相關問題