gpt4 book ai didi

validation - 仅当按下某个命令按钮时才根据需要验证输入

转载 作者:行者123 更新时间:2023-12-04 00:22:10 26 4
gpt4 key购买 nike

我有 JSF 验证的特定用例。例如我有一个 inputText field :

<p:inputText id="input" required="#{myBean.required}" value="#{myBean.value}" maxlength="20" disabled="#{myBean.disabled}">
<p:ajax event="blur" process="@this" update="name" listener="#{myBean.listener}"/>
</p:inputText>

输入的值是数字(在某些情况下它也可以是字符串,因为这是复合组件的一部分,但如果我们假设这是一个数字,则可以更好地描述问题)。此输入是表单的一部分,在表单末尾我有提交按钮:
<p:commandButton value="Save" actionListener="#{myBean.save}"/>

我有什么要求:
  • 按下提交按钮时,应处理所有验证,这没关系,这工作正常。
  • 如果输入字段不为空,则在输入字段上触发模糊事件时,应处理数字验证,这也可以。最后,我用 id name 更新字段具有一定的值(value)。
  • 现在我有一个问题。我的第三个请求是当输入为空时,不应处理输入验证。这是一种特殊情况,我将清除 ID 为 name 的字段.当我删除已在输入中输入的文本、从组件中删除焦点(例如按 TAB)时也是这种情况,在这种情况下,还应处理 AJAX 请求并且名称输入也将被清除。

  • 如果该输入字段为空,并且仅针对此 ajax 事件,如何禁用该输入字段的验证?

    最佳答案

    让输入的required属性检查是否按下了保存按钮(可以通过请求参数映射中其客户端 ID 的存在来识别)。

    <h:form>
    <p:inputText ... required="#{not empty param[save.clientId] and myBean.required}" />

    <p:commandButton binding="#{save}" ... />
    </h:form>

    (注意:做 不是 将它绑定(bind)到 bean 属性!代码是原样的)

    这样它只会评估 true当实际按下保存按钮时。

    或者,如果您对 binding 有疑问和/或硬编码按钮的客户端 ID 没有问题:
    <h:form id="formId">
    <p:inputText ... required="#{not empty param['formId:buttonId'] and myBean.required}" />

    <p:commandButton id="buttonId" ... />
    </h:form>

    关于validation - 仅当按下某个命令按钮时才根据需要验证输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14729982/

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