Bal*_*usC 28
如果您已经在HTML5和JSF 2.2,请使用HTML5 autofocus
属性.在JSF 2.2中,您可以将其设置为passthrough属性.
<html ... xmlns:a="http://xmlns.jcp.org/jsf/passthrough">
...
<h:inputText ... a:autofocus="true" />
Run Code Online (Sandbox Code Playgroud)
您甚至可以有条件地设置它,您只需要确保false
条件的计算结果null
,否则该属性仍将被渲染.它是一个HTML布尔属性,因此只有它的存在已经是触发器,无论其值如何.当值显式设置为null
,则JSF将不会完整地呈现该属性.
<h:inputText ... a:autofocus="#{component.valid ? null : true}" />
Run Code Online (Sandbox Code Playgroud)
另一种方法是投入一些JavaScript.每个输入元素都有一个focus()函数.以下天真的Vanilla JS方法着重于第一种形式的第一个元素.
window.onload = function() {
document.forms[0].elements[0].focus();
}
Run Code Online (Sandbox Code Playgroud)
如果要在窗口加载期间聚焦特定的输入元素,请执行以下操作:
window.onload = function() {
document.getElementById('formId:inputId').focus();
}
Run Code Online (Sandbox Code Playgroud)
如果您碰巧有jQuery,可以进行更精细的检查.
$(document).ready(function() {
$(":input:visible:enabled:first").focus()
});
Run Code Online (Sandbox Code Playgroud)
如果您打算仅在回发后执行它,请转到下面的相关问答:
实用程序/组件库可能具有内置自动对焦功能.OmniFaces有一个<o:highlight>
突出显示回发的所有无效输入并自动聚焦第一个.默认情况下,PrimeFaces在完成ajax请求时自动复制 "最后一个活动"元素,并具有<p:focus>
更细粒度的控制.另见以下相关问答:
Joh*_*tts 18
如果你使用primefaces,你可以像这样集中你的输入:
<p:focus for="inputId"/>
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
33540 次 |
最近记录: |