Javascript dojo dijit/form/DateTextBox是否可以有多个datePattern

Javascript dojo dijit/form/DateTextBox是否可以有多个datePattern,javascript,dojo,dijit.form,Javascript,Dojo,Dijit.form,例如,在dojo dijit/form/DateTextBox中 我认为小部件本身不可能做到这一点。这样做的原因是,datePattern用于输入和输出。因为您只能显示一个输出,所以只能有一个模式。如果我运行您的示例并从下拉列表中选择一个数据,那么2012年12月8日的输出为12/08/2012 | 12082012。它在屏幕后面所做的是使用不支持正则表达式(它只是一个简单的日期模式)的dojo/date/locale模块直接使用该模式进行解析/格式化 然而,这并不是完全不可能实现的,您可以扩

例如,在dojo dijit/form/DateTextBox中


我认为小部件本身不可能做到这一点。这样做的原因是,
datePattern
用于输入和输出。因为您只能显示一个输出,所以只能有一个模式。如果我运行您的示例并从下拉列表中选择一个数据,那么2012年12月8日的输出为12/08/2012 | 12082012。它在屏幕后面所做的是使用不支持正则表达式(它只是一个简单的日期模式)的
dojo/date/locale
模块直接使用该模式进行解析/格式化

然而,这并不是完全不可能实现的,您可以扩展dijit/form/DateTextBox并使其工作,以便有不同的输入和输出模式。请看代码。在第77行,您可以看到实际将输入字符串转换为日期的
parse
方法。您必须重写此函数

覆盖小部件的一个示例是:

declare(“自定义/日期文本框”,[DateTextBox]{
解析:函数(值、约束){
var out=null;
if(constraints.inputDatePattern!==未定义){
var patterns=constraints.inputDatePattern.split(“|”);
for(var idx=0;idx
我在这里实际做的是引入一个名为
inputDatePattern
的新约束,用于解析输入(而
datePattern
将用于输出)。如果未定义
inputDatePattern
,我将使用原始函数解析输入。如果已定义,则我将按管道符号(
|
)拆分模式,并尝试每个模式,直到获得正确的值


所有这些都会产生一个自定义的datetextbox。您还必须更改HTML,直到生成类似的内容。

我是dojo新手,因此建议我其他方法或给我一些工作示例。我不理解你给出的链接中的内容。