我想更改dijit dateTextBox日期的显示格式 目前我的日期显示如下
我的声明是这样的
<input type="text" data-dojo-type="dijit/form/DateTextBox" data-dojo-attach-point="theInput" />
但我想将格式更改为我想要的任何格式,例如2017年9月14日或2017年9月14日。
如果使用键盘输入格式,是否可以针对相同的格式进行验证 - 即。当用户输入数据时,它必须采用该格式,否则将显示无效消息。
修改: 我所能找到的只是提到了允许你设置输入约束和格式化的约束 - 但是文档中没有例子如何使用它。很高兴看到声明性和程序化的例子。
此外,根据声明性标记中的其他一些帖子,您可以指定约束,如
data-dojo-props="constraints:{datePattern:'yyyy-MM'}"
但是我想以编程方式执行此操作,但是当我检查输入对象时
this.theInput.constraints
没有datePattern,或min和max。
这样的属性答案 0 :(得分:4)
程序代码和声明代码都是可能的:
将你的模式,min,max放在约束道具中,如:
<input type="text" name="shortYear" data-dojo-type="dijit/form/DateTextBox" data-dojo-props="constraints:{datePattern: 'MM-dd-yyyy',min:'2016-12', max:'2018-06'}" value="09-14-2017" required="true" />
见工作小提琴
require(["dijit/form/DateTextBox","dojo/parser", "dijit/form/Button","dojo/on" ,
"dojo/domReady!"
], function(DateTextBox,parser,Button, On ) {
parser.parse();
});
<link href="https://ajax.googleapis.com/ajax/libs/dojo/1.10.0/dijit/themes/claro/claro.css" rel="stylesheet"/>
<script src="//ajax.googleapis.com/ajax/libs/dojo/1.10.4/dojo/dojo.js"></script>
<body class="claro">
<input type="text" name="shortYear" data-dojo-type="dijit/form/DateTextBox" data-dojo-props="constraints:{datePattern: 'MM-dd-yyyy',min:'2017-09-03', max:'2018-01-01'}" value="09-14-2017" required="true" />
</body>
您只是用来直接访问约束对象并在那里设置约束值Mydateinput.constraints.contName = value
,如
myDateBox.constraints.datePattern = 'MM-dd-yyyy'
myDateBox.constraints.min = new Date();
myDateBox.constraints.max = new Date("yyyy-MM-dd")
参见工作代码段
require(["dijit/form/DateTextBox", "dijit/form/Button","dojo/on" ,
"dojo/domReady!"
], function(DateTextBox,Button, On ) {
datebox = new DateTextBox({
}, "date");
datebox.constraints.datePattern = 'MM-dd-yyyy';
datebox.constraints.min = new Date("2017/09/03");
datebox.constraints.max = new Date("2018/01/01")
datebox.startup();
});
<link href="https://ajax.googleapis.com/ajax/libs/dojo/1.10.0/dijit/themes/claro/claro.css" rel="stylesheet"/>
<script src="//ajax.googleapis.com/ajax/libs/dojo/1.10.4/dojo/dojo.js"></script>
<body class="claro">
<div id="date" ></div>
</body>