我正在使用日期文本框并有几个问题。这是与设计师9,所以它使用道场1.8不是它应该有太大的差异。XPages DateTextBox - 设置约束
设置最短/最短日期
我没有看到在设计器中这样做的方法。在xe:djDateTimeConstraints中没有任何匹配,所以这是我需要通过JavaScript做的事情? 我有一个例子,下面的例子改变了EndDate控件一旦选择了StartDate,但没有看到设置StartDate和BeforeRenderResponse等的方法。
可选日期
http://dojotoolkit.org/reference-guide/1.8/dijit/form/DateTextBox.html “也验证对像最小值,最大值,当周的有效天数等开发商提供的约束”
本周的有效天数 - 我希望将它设置为仅可选择的平日,但没有示例,并且链接不会转到带有dayofweek约束的页面。我应该搜索什么术语?在下面的例子中,我有一个验证器,但我不知道日期文本框是否可以让周末不可选。
这里是我的榜样控制 - 当开始日期设定,它改变结束日期
<xp:label value="Start Date" id="lblStartDate"></xp:label>
<xe:djDateTextBox id="djDateStart">
<xe:this.constraints>
<xe:djDateTimeConstraints datePattern="M/dd/yyyy"></xe:djDateTimeConstraints>
</xe:this.constraints>
<xp:eventHandler event="onChange" submit="false">
<xe:this.script><![CDATA[
var startDateID = "#{id:djDateStart}";
var endDateID = "#{id:djDateEnd}";
var hiddenEndDateID = "#{id:hiddenEndDate}";
require(["dojo/date/locale"], function(locale){
var x = new Date (dojo.byId(startDateID).value);
// Fails if current date is the weekend or empty
if(locale.isWeekend(x) || dojo.byId(startDateID).value == "") {
dojo.style(hiddenEndDateID, "display", "none");
dojo.byId(endDateID).value = "";
dojo.byId(startDateID).value = "";
dijit.byId(startDateID).displayMessage("dates must be weekdays");
} else {
// Set display value and constraint for End Date
dojo.byId(endDateID).value = dojo.byId(startDateID).value;
dijit.byId(endDateID).constraints.min = arguments[0];
dijit.byId(endDateID).constraints.max = dojo.date.add(arguments[0], "week", 3);
// Make End Date and Comment visible.
dojo.style(hiddenEndDateID, "display", "inline");
}
})
]]></xe:this.script>
</xp:eventHandler>
</xe:djDateTextBox>
不知道我可以在设计器中设置最小/最大约束,所以我改为在页面上创建一个脚本块,以便在dojo准备好时设置值。不是最优的,但至少它是有效的。仍然不确定是否有可能限制用户通过用户界面选择像周末一样的周末选择,但我有验证器来警告用户。 – anotherBob 2013-03-13 16:07:17