2

运行 ND9 服务器并在浏览带有日期字段的 Xpage 时,此字段的默认值始终是今天的日期。

在 8.5.3 服务器上,控件呈现如下:

<input class="dijitReset dijitInputInner" dojoattachpoint="textbox,focusNode" autocomplete="off" type="text" aria-valuenow="undefined" aria-invalid="false" id="view:_id1:_id2:main:fromTDate" tabindex="0" value="">
<input style="display: none;" type="text" name="view:_id1:_id2:main:fromTDate">

在 ND9 服务器上,相同的控件呈现如下:

<input class="dijitReset dijitInputInner" type="text" autocomplete="off" data-dojo-attach-point="textbox,focusNode" role="textbox" aria-haspopup="true" aria-invalid="false" tabindex="0" id="view:_id1:_id2:main:fromTDate" maxlength="10" size="10" value="">
<input type="hidden" name="view:_id1:_id2:main:fromTDate" value="2013-03-26">

我已经能够通过添加一个 Dojo 日期文本框来绕过它,但是这个功能一定是错误的,对吧?

4

2 回答 2

4

这实际上是 v9.0 中的一个修复程序。今天默认出现的日期现在是预期的行为

于 2013-03-26T17:33:11.477 回答
1

将此添加到您的 XPage 中,其行为类似于 8.5.3

<xp:this.resources>
<xp:script clientSide="true">
<xp:this.contents><![CDATA[
require([
"dojo/_base/lang",
"ibm/xsp/widget/layout/DateTextBox",
"ibm/xsp/widget/layout/TimeTextBox",
"ibm/xsp/widget/layout/DateTimeTextBox"
], function(lang, DateTextBox, TimeTextBox, DateTimeTextBox){
var a = {};
lang.mixin(a, {
postCreate: function(){
this.inherited(arguments);
}
});
DateTextBox.extend(a);
TimeTextBox.extend(a);
DateTimeTextBox.extend(a);
});
]]></xp:this.contents>
</xp:script>
</xp:this.resources>

感谢 IBM 的快速响应。

于 2013-04-01T07:37:12.647 回答