XPages - 禁用Dojo组合框的客户端验证

时间:2013-10-09 08:04:45

标签: dojo xpages

我尝试禁用Dojo Combo Box的客户端验证失败。我添加了一个dojo属性“required”并将其设置为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>

2 个答案:

答案 0 :(得分: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>

答案 1 :(得分:0)

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

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

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