我的inputText字段中有一个convertDateTime =“MM / yyyy”,看起来像#
<%taglib uri ="http://java.sun.com/jsf/html" prefis"h"/>
<%taglib uri ="http://java.sun.com/jsf/core" prefis"f"/>
<h:outputLabel value=#{prop.fromLabel}" for="dateText" id="frmDateId">
<h:inputText id="id" value="Bean.details.fromDate" binding="#{Bean.fromDateInputText}">
<f:convertDateTime pattern="MM/yyyy"/>
</h:inputText>
<h:message for="dateText" errorClass="errorMessage"/>
</h:outputLabel>
我想为我为属性错误消息设置的错误消息设置焦点。我无法访问bean来设置焦点,因为错误在JSF验证级别上,因此无法为组件ID设置setFocus。请帮忙。
由于 MAC
答案 0 :(得分:0)
如果您可以随意向项目添加omnifaces,我建议您在基本模板中添加o:highlight。它会自动将CSS类添加到无效组件中并聚焦第一个这样的元素。
如果你需要普通的JSF,你需要自己动手,这是一个例子:
<h:inputText id="dateIn" styleClass="#{component.valid ? '' : 'invalidInput'}"
value="#{bean.details.fromDate}">
<f:convertDateTime pattern="MM/yyyy" />
</h:inputText>
那是使用引用当前组件的内置component
对象(在这种情况下为<h:inputText>
)。
聚焦第一个无效组件非常简单:
<h:outputScript>
var firstInvalid = document.getElementsByClassName('invalidInput')[0];
if (typeof firstInvalid !== 'undefined') firstInvalid.focus();
</h:outputScript>
即使您无法获得component
工作权限,Max也会another Example。