arg*_*g20 6 java jsf primefaces
我有一个模板,我可以在组件验证失败时向div添加一个CSS错误类,它会对浏览器产生非常好的效果.
现在,我不需要为组件添加一个css类(这对我没有帮助),而是我需要更改它周围的html的css,这对jQuery非常简单,但我可以'似乎找不到验证失败的javascript回调,这可能吗?我也在使用primefaces(如果他们提供这样的功能).
标记:
<div class="control-group ERROR_CLASS_GOES_HERE_IF_VALIDATION_FAILED">
<label class="control-label">Input value:</label>
<div class="controls">
<h:inputText class=" inputbox" type="text" required="true" /> <!--Component that can fail -->
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
如果输入文本为空,我需要包含"控制组"的div才能有一个额外的类.我可以把它变成一个<h:panelGroup>所以它是一个JSF组件,但我仍然不知道如何做到这一点.Javascript似乎更容易,因为我可以做:
jQuery("#ID_OF_DIV").addClass("error_class")
Run Code Online (Sandbox Code Playgroud)
Bal*_*usC 20
让JSF/EL有条件地打印基于的类FacesContext#isValidationFailed().
<div class="control-group #{facesContext.validationFailed ? 'error_class' : ''}">
Run Code Online (Sandbox Code Playgroud)
您只需要确保ajax update/render覆盖此元素.
另一种方法是挂钩基于oncomplete任意PrimeFaces ajax的组件.args范围内有一个对象,而这个对象又有一个validationFailed属性.例如<p:commandButton oncomplete>甚至是<p:ajaxStatus oncomplete>.
<p:ajaxStatus ... oncomplete="if (args && args.validationFailed) $('#ID_OF_DIV').addClass('error_class')">
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8112 次 |
| 最近记录: |