簡體   English   中英

在ExtJS日期選擇器輸入值中允許非數字

[英]Allowing non-numbers in an ExtJS date-picker input value

我為此感到困惑。 我們有一個ExtJS表單,其中輸入了生日。 但是,通常不知道出生的月份或日期。 用戶的慣例是在未知時輸入xx-xx / xx / 1984。

如果需要輸入xx,則可以鍵入,否則可以使用ExtJS日期選擇器。 保存工作正常,但是如果以xx / xx / 1984格式保存,然后再次查看表單,則該字段為空白,而不是顯示輸入的生日。 這是因為ExtJS在date字段中阻塞了非數字。

PHP形式:

echo "<input id=\"dobDt\" name=\"dobDt\" value=\"" . getData("dobDd","textarea") . "/" . getData("dobMm","textarea"). "/" .getData ("dobYy", "textarea") . "\" type=\"text\">

ExtJs:

dobDtFormat = new Ext.form.DateField({
    fieldLabel: '',
    format: 'd/m/Y',
    maskRe : /[\Xx{1,4}\d{1,2}\/]/,
    validationEvent: false,
    allowBlank:true
});
dobDtFormat.applyToMarkup(document.mainForm.dobDt);

Ext用其日期字段替換輸入。 關於如何允許“ xx”出現的任何想法?

同樣不確定當日歷出現並且選擇日期時如何處理“ xx”。 理想情況下,我們希望在輸入中顯示“ xx / xx / 1980”,但是當您打開日歷時,它將解釋為“ 01/01/1980”。

由於ExtJS不支持開箱即用的“ xx”日期格式,因此您必須擴展DateField對象,並可能覆蓋其某些功能,例如:

myNamespace.MyDateField = Ext.extend(Ext.form.DateField, {
    //your configs, functions to support "xx" behavior
}

聽起來您還需要認真考慮並更仔細地定義此組件在所有可能出現的用例中的功能。 例如,用戶將如何指定哪個字段(月,日和/或年)應具有“ xx”與數字? DateField不是為此設計的,因此您可能需要為此添加一些表單字段。

有關創建自己的自定義ExtJS組件的更多信息,請參見此處的Sencha指南: http ://docs.sencha.com/ext-js/4-0/#!/guide/components

(在頁面下方大約一半處找到標題為“創建自定義組件”的部分。)

希望這可以幫助你。 干杯!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM