2011-12-08 43 views
0

除了使用日期選擇器外,默認的ExtJS form.field.date允許手動輸入/編輯日期。但是,如果您爲DD輸入大於31的數字或爲MM輸入大於12的數字,則會重新計算該值。ExtJS form.field.date重新計算輸入無效MM或DD的日期。如何預防?

例如,如果列出的MM/DD/YYYY是2011年12月1日並編輯爲15/01/2011(最大MM值應爲12),則重新計算以顯示03/01/2012--假設你打算增加3以上的最大值。

有什麼方法可以關閉此功能嗎?我想驗證/錯誤消息出現,所以用戶必須手動更改,而不是自動重新計算。這似乎是其他人想要的基本功能 - 我是否在配置選項中丟失了某些內容?

交叉張貼在Ext forums

回答

1

添加一個答案,我通過轉forum post發現自己的問題。

什麼樣的分機稱爲「翻轉」功能可以通過添加useStrict: true來關閉。請參閱documentation

我想刪除側翻功能的站點範圍內的,所以我說這是我們在整個網站中使用的主要內線util.js中:

Date.useStrict = true; 

正如我在EXT論壇上提到,我可以我不明白爲什麼這種翻滾行爲對前端用戶有用 - 爲什麼有人想故意輸入,比如01/33/2011,並打算在2011年2月2日輸入。

3

沒有一個配置選項可以讓你這樣做..但你可以做的是提供一個驗證器功能。這個函數get在默認驗證之前調用,我認爲它必須改變值的發生。

new Ext.form.DateField({ 

    validator : function(value){ 
     var split = value.split('/'); //Assuming/is your seperator 
     if(split[0] > 31) 
     { 
     //Show error 
     } 
     // Other validations etc. 
    } 
}); 

如果數值變化發生在驗證之前調用,然後添加配置選項: validateOnBlur : true

+0

感謝您的Varun - 如果您想要更細緻的控制級別,那麼它非常適用。通過ext論壇,我發現了一種更簡單的方法來徹底刪除翻轉功能。 – Voodoo

相關問題