【问题标题】:Skip validation when a specific button is clicked and set specific values单击特定按钮时跳过验证并设置特定值
【发布时间】:2016-12-04 02:40:54
【问题描述】:

我有一个包含多个字段的表单,并且有一个包含两个必填字段和一个搜索按钮的块。 我想要的是当我单击搜索按钮时,我想忽略表单验证以及要在 bean 中设置的两个字段值,但这不会发生。 我应该如何应用这些值?

编辑:我在视图中有更多必填字段,在这种情况下我想忽略。

<p:inputMask id="field1" mask="9999" styleClass="marginLeft input smaller"
                                 requiredMessage="#{label.msg_requiredFields}"
                                 required="true" value="#{cc.attrs.cena.field.cp4Offline}"/>

                    <p:inputMask id="field2" mask="999"
                                 requiredMessage="#{label.msg_requiredFields}"
                                 required="true" styleClass="input smallest"
                                 value="#{cc.attrs.cena.field.cp3Offline}"/>

                    <p:commandButton id="pesquisarId" styleClass="marginLeft" icon="ui-icon-search"
                                     actionListener="#{pesquisarMorada.pesquisar(cc.attrs.cena)}"
                 update="resultPesquisaPanelId" process="@this field1 field2" immediate="true"/>

【问题讨论】:

标签: jsf primefaces


【解决方案1】:

&lt;p:commandButton /&gt; 中删除immediate="true"

来自article

...当 Command 组件上的 immediate 设置为 true 时,将在 Apply Request Values 阶段调用该操作...

...所以您的模型值根本不会更新。

【讨论】:

  • 好的,但我认为我需要更多字段。在这种情况下,不执行按钮的动作。解决方案?
  • @Jorge 即使您有更多带有required="true" 的字段,只要您在&lt;p:commandButton&gt; 上保留process="@this, field1, field2",它们就会被忽略。但为了完整起见,请使用这些附加字段更新您的问题。也许它们以某种方式配置,以防止 actionListener 执行。
  • @Jorge 有更新吗?我的回答对你有帮助吗?
  • 是的,我发现对我没有帮助的片段是问题的原因!
猜你喜欢
  • 2011-08-29
  • 1970-01-01
  • 2016-08-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多