3

我正在尝试禁用 Dojo 组合框的客户端验证,但未成功。我添加了一个 dojo 属性“必需”并将其设置为 false,但这仍然不起作用。我确实希望启用服务器端验证,这就是我设置 required="true" 的原因。任何人都可以看到需要对以下代码进行哪些更改?

<xe:djComboBox id="djComboBox1" required="true" disableClientSideValidation="true">
<xe:this.dojoAttributes>
<xp:dojoAttribute name="required" value="false">
</xp:dojoAttribute>
</xe:this.dojoAttributes>
<xp:selectItem itemLabel="" />
<xp:selectItem itemLabel="Apples" />
<xp:selectItem itemLabel="Oranges" />
<xp:selectItem itemLabel="Pears" />
<xp:selectItem itemLabel="Bananas" />
<xp:selectItem itemLabel="Plums" />
</xe:djComboBox>
4

2 回答 2

7

尝试使用始终返回true的方法覆盖组合框的客户端验证公式:

<xe:djComboBox
    id="djComboBox1"
    required="true"
    validatorExt="return true;">
    <xp:selectItem itemLabel="" />
    <xp:selectItem itemLabel="Apples" />
    <xp:selectItem itemLabel="Oranges" />
    <xp:selectItem itemLabel="Pears" />
    <xp:selectItem itemLabel="Bananas" />
    <xp:selectItem itemLabel="Plums" />
</xe:djComboBox>
于 2013-10-09T13:53:13.677 回答
0

据我所知,您不能在 Dojo 表单控件上禁用客户端验证。Dojo 是一个客户端框架,控件只是让实现 Dojo 版本变得更加容易。验证是 Dojo 客户端 JavaScript 代码的一部分,而不是 XPages 服务器端运行时的任何内容。因此验证旨在运行客户端而不是服务器端。

标准的 ComboBox 控件将为您提供所需的内容。您可以通过使用例如 FireBug 识别相关样式来重现 Dojo 版本的样式。

另一个选项是在您的保存按钮中进行验证。有一个 XSnippet 可以帮助标记控件无效并发布到 xp:messages 或 xp:message 控件http://openntf.org/XSnippets.nsf/snippet.xsp?id=ssjs-form-validation-that-triggers -错误消息控制。但这不会给出 Dojo 错误样式,这也是 Dojo 代码的一部分,而不是 XPages 运行时的特定部分。

于 2013-10-09T08:33:20.913 回答