更改一个inputtext时禁用其他inputtext

时间:2015-02-01 13:58:46

标签: validation jsf jsf-2 primefaces

我在PrimeFaces 4.0中使用JSF2.1,令人惊讶的是我无法找到一个简单的解决方案,如果已填充另一个字段,如何禁用字段。例如。如果我输入"加上数量"字段和我通过单击或使用选项卡离开该字段,"减去数量"字段应该被禁用。

我发现的只是做这样的事情

<p:inputText id="minusQty" disabled="#{not empty order.plusQty}"/>
<p:inputText id="plusQty" value="#{order.plusQty}">
      <f:ajax update="minusQty" />
</p:inputText>

但我发现调用服务器执行这么简单的任务有点重。我也不想添加自定义JS代码。我想在JSF / PF中有一种内置方式,但我找不到它......

1 个答案:

答案 0 :(得分:2)

  

但我觉得调用服务器执行这么简单的任务有点重要

测量它而不是做出假设。

  

我也不想添加自定义JS代码

归结为只使用正确的工具来完成工作。除了<p:ajax><f:ajax>混合(<f:ajax>不支持update属性)之外,您目前看到的代码看起来还不错。我只使用<p:ajax partialSubmit="true">来减少请求的有效负载,特别是如果这是一个相对较大的形式的一部分。

最终可能会进入JS方向,请记住,在客户端启用/禁用HTML DOM元素不会启用/禁用服务器端的JSF组件。换句话说,当你使用纯JS这样做时,黑客仍然能够提交价值。在考虑客户端或服务器端执行某些任务时,请始终牢记这一点。