我们在应用程序中使用dojo DateTextbox。之前它显示的是本地格式mm / dd / yyyy
现在最终用户需要dd-MMM-yyyy格式。下面的代码将照顾单个文本框。
<input id="startDate" name="startDate" size="10" value="${fromdate }"
dojoType="dijit.form.DateTextBox" required="true"
constraints="{min:'08/22/2008',datePattern : 'dd-MMM-yyyy'}" />
但是我们的项目中有很多DateTextBox。在所有文本字段中添加约束属性将是繁琐的工作。
我们是否可以在全球范围内对其进行定义,以便处理所有文本字段?
谢谢
答案 0 :(得分:2)
这样做的正确方法是从DateTextBox
扩展并定义约束。
例如:
declare("CustomDateTextBox", [DateTextBox], {
postCreate: function() {
this.inherited(arguments);
this.set('constraints', {
min: '08/22/2008',
max: new Date(),
datePattern: 'dd-MMM-yyyy'
});
}
});
此举意味着您需要使用CustomDateTextBox
代替DateTextBox
。如果你真的想使用dijit/form/DateTextBox
,你可以定义名称dijit/form/DateTextBox
,但我不推荐它,因为如果你也需要默认的DateTextBox
,你就不能。< / p>
this.inherited(arguments)
也非常重要,因为它会运行超级调用,这意味着也会调用默认的postCreate
(没有它,你的小部件将无效)。
我还在JSFiddle做了一个完整的示例,如果您想使用dijit/form/DateTextBox
,可以使用this example。
编辑:我刚刚注意到你正在使用Dojo 1.6。代码将不起作用,但想法是相同的,只需扩展您的小部件,它将工作。
编辑2 :This code可能适用于Dojo 1.6。
答案 1 :(得分:0)
有几种选择
一个例子是:
var myConstraints = {
min: new Date( 1950, 2, 10),
max: new Date(),
datePattern : 'dd-MMM-yyyy'
};
然后当你声明一个方框时:
constraints: myConstraints