我有JSF验证的特定用例。例如我有一个inputText
字段:仅当按下某个命令按钮时才根据需要验证输入
<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}"/>
什么是我的要求:
- 当提交按钮被按下时所有的验证应该进行处理,这是OK ,这工作正常。
- 如果字段不为空时在输入字段上触发模糊事件,则应处理数字验证,这也是可以的。最后,我更新了ID为
name
的字段并提供了一些值。 - 现在我有一个问题。我的第三个请求是当输入为空时,不应处理输入验证。这是特殊情况,我将清除ID为
name
的字段。当我删除已经在输入中输入的文本,从组件中移除焦点(例如按TAB)时,也是这种情况,并且在这种情况下AJAX请求也应该被处理并且名称输入也将被清除。
如何禁用验证此输入字段的情况下,当它是空的,只为这个Ajax事件?
您认为在这种情况下所需的验证会被忽略?为什么? – partlov
只要你不填充(并因此改变)输入,验证不会在模糊时被触发。 – BalusC
也许我对第三个请求中的具体用例还不清楚。我编辑它。用户可能(可能意外地)删除文本,并在这种情况下名称输入将被清除。 – partlov