2014-11-04 68 views
0

我使用jquery datepicker,但找不到解決方案。Datepicker需要但不能在輸入字段中更改

$("#birthday").datepicker({ 
         maxDate: '0-15y', 
         minDate: '0-30y', 
         dateFormat: 'yy-mm-dd', 
         defaultDate: '0 -18y', 
         changeMonth:true, 
         changeYear:true 
         }); 

我有一個必需的輸入字段與datepicker在哪裏我定義了最短日期和最大日期。 在彈出窗口中,它可以正常工作,但我可以在最短日期之前或最長日期之後的日期中更改輸入框中的日期。

我試圖設置該字段爲只讀,所以沒有人可以在輸入字段中更改它,但在彈出窗口中,但不再需要我的字段。

<input type='text' name='birthday' id='birthday' value='".$birthday."' placeholder='YYYY-MM-DD' style='width:100%;' required ".$pat_date."> 

感謝您的幫助

BG

回答

3

字段不能同時requiredreadonly

相反,當專注於你可以阻止默認操作,當用戶按下一個鍵您<input>

$("#birthday").datepicker({ 
    maxDate: '0-15y', 
    minDate: '0-30y', 
    dateFormat: 'yy-mm-dd', 
    defaultDate: '0 -18y', 
    changeMonth:true, 
    changeYear:true 
}).on('keypress', function(e){ e.preventDefault(); }); 

JSFiddle

+0

完美。這是我所尋找的! – user3352184 2014-11-04 14:29:57

+0

很高興有幫助。 – George 2014-11-04 14:50:26

0

添加事件處理程序到現場,這樣,當現場有焦點它將當前日期存儲在該字段中。將另一個事件處理程序添加到該字段中,以便字段發生更改時可以檢查字段中的新日期,並查看它是否有效。如果不是,則可以恢復到原來的日期,或者可以向用戶發送警告。

這種方式字段可以保持可編輯,所以他們可以手動輸入日期,如果他們想要的話,它仍然有一些你需要的驗證。

相關問題