我有一个 IceFaces 表单和几个输入字段。
假设我有这个:
<ice:selectOneMenu id="accountMenu"
value="#{accountController.account.aId}"
validator="#{accountController.validateAccount}">
<f:selectItems id="accountItems"
value="#{accountController.accountItems}" />
</ice:selectOneMenu>
和这个:
<ice:selectOneMenu id="costumerMenu"
value="#{customerController.customer.cId}"
validator="#{customerController.validateCustomer">
<f:selectItems id="customerItems"
value="#{customerController.customerItems}" />
</ice:selectOneMenu>
如果我更改一个值,则会调用相应的验证器,这很好。但也调用了另一个验证器,这并不好,因为用户收到一条令人讨厌的消息,将值插入他可能刚刚要注意的字段。这就像用棍子戳用户“现在快点!”。坏的!
我认为属性“partialSubmit”控制了这种行为,所以只提交了一个 DOM 部分,这受用户交互的影响,但是如果我声明两个组件都部分提交,则没有任何变化。如果一个组件值发生更改,仍然会调用两个验证器。
如何防止整个表单在完全提交之前被验证?