gpt4 book ai didi

validation - 如何验证是否至少输入了多个输入字段之一?

转载 作者:行者123 更新时间:2023-12-03 18:36:04 24 4
gpt4 key购买 nike

我有一个包含 3 个字段的表单和提交按钮。单击按钮时,如果在 3 个字段中未输入任何内容,则抛出验证消息。如果输入了 3 个字段中的任何一个,则处理数据并使用数据表在同一页面中显示结果。我可以为一个字段抛出验证消息,但不能为 2 个或更多字段抛出验证消息。这是我的代码。同样,如果我有一个需要传递的长值,并验证我该怎么做,因为长值无法验证为 isEmpty()isNull() .

这是我的代码,我想将它与多个字段一起使用,并且对具有长值的字段进行验证。

<h:inputText id="userName" value="#{user.userName}" required="true"
requiredMessage="Please enter username" />

<h:inputText id="empId" value="#{user.empId}" required="true"
requiredMessage="Please enter Employee Id" />

<h:inputText id="acctNm" value="#{user.acctNm}" required="true"
requiredMessage="Please enter Employee Id" />

最佳答案

只要让required每个字段的属性检查其他字段的提交值是否存在。提交的值在参数映射#{param}中可用以客户端 ID 作为 key 。

这是一个启动示例:

<h:form id="form">
<h:inputText id="field1" ... required="#{empty param['form:field2'] and empty param['form:field3']}" />
<h:inputText id="field2" ... required="#{empty param['form:field1'] and empty param['form:field3']}" />
<h:inputText id="field3" ... required="#{empty param['form:field1'] and empty param['form:field2']}" />
</h:form>

随着字段数量的增加,它只会变得更难看。

或者,您可以使用 OmniFaces <o:validateOneOrMore> :
<h:form id="form">
<h:inputText id="field1" ... />
<h:inputText id="field2" ... />
<h:inputText id="field3" ... />

<o:validateOneOrMore id="oneOrMore" components="field1 field2 field3" />
<h:message for="oneOrMore" />
</h:form>

请注意,在 action 方法中执行验证是糟糕的设计。您应该为此使用标准的 JSF 验证工具,例如 requiered , validator , <f:validator>和/或 <f:validateXxx> .

关于validation - 如何验证是否至少输入了多个输入字段之一?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13012197/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com