XPages - 禁用Dojo Time Text Box的客户端验证

时间:2013-12-04 12:06:17

标签: dojo xpages lotus

我想禁用Dojo Time Text Box控件的客户端验证,同时使其成为服务器端验证的必填字段。我已将“disableClientSideValidation”和“validatorExt”属性都设置为true。但是,当我打开XPage时,我立即在Dojo时间文本框旁边看到错误“此值是必需的”。这是我的代码:

<xe:djTimeTextBox id="EventStartTime" value="#document1.EventStartTime}"     required="true"               
disableClientSideValidation="true" 
promptMessage="Bitte fügen Sie diesem Feld einen Wert hinzu!"
validatorExt="true">
<xe:this.validators>
<xp:validateRequired>
<xp:this.message><![CDATA[Bitte füllen Sie das Feld "Event Start Zeit" aus!]]>                 
</xp:this.message>
</xp:validateRequired>
</xe:this.validators>
</xe:djTimeTextBox>

1 个答案:

答案 0 :(得分:3)

如果您将xe:djTimeTextBox与属性required="true"一起使用,则会创建一个html输出,如下所示:

<input name="view:_id1:EventStartTime" id="view:_id1:EventStartTime" required="true" promptmessage="Bitte fügen Sie diesem Feld einen Wert hinzu!" dojotype="dijit.form.TimeTextBox">

您可以在使用Firefox的noscript插件时查看此代码,并将其设置为禁用所有脚本。这是输出befor dojo正在转换dojo文本框中的输入。

问题是如果你使用这个extlib prebuild字段,如果禁用客户端验证,如果你将此字段设置为required,那么required=true属性将被写入输入。解决方法可能是使用标准输入并添加dojo属性,然后您可以像这样在服务器端设置所需:

<xp:this.resources>
    <xp:dojoModule name="dijit.form.TimeTextBox"></xp:dojoModule>
</xp:this.resources>

<xp:inputText id="mtgTime1" style="width:160px;" role="button"
    title="used to pick a meeting time" required="true"
    dojoType="dijit.form.TimeTextBox" disableClientSideValidation="true">
    <xp:this.dojoAttributes>
        <xp:dojoAttribute name="required" value="false"></xp:dojoAttribute>
    </xp:this.dojoAttributes>
    <xp:this.validators>
        <xp:validateRequired>
            <xp:this.message><![CDATA[Bitte füllen Sie das Feld "Event Start Zeit" aus!]]></xp:this.message>
        </xp:validateRequired>
    </xp:this.validators>
</xp:inputText>
<xp:messages id="messages1"></xp:messages>
<xp:button id="test" value="tst">
    <xp:eventHandler event="onclick" submit="true"
        refreshMode="complete">
    </xp:eventHandler></xp:button>