我有“添加地址”按钮,点击按钮会弹出一个Jquery对话框,以填写房屋号码,街道,城市,县,州,国家和邮政编码的地址信息。 我想从门牌号开始我的标签,但焦点始终在标题栏上设置关闭按钮。
<f:view>
<body onload="sartup()">
<h:form id="form1">
<h:panelGroup >
<h:outputLabel value="House Number" styleClass="label" id="hnoLbl"></h:outputLabel>
<h:inputText id="hnoId" value="#{somebackingbean.address1}"></h:inputText>
</h:panelGroup>
<h:panelGroup>
<h:outputLabel value="Street" styleClass="label" id="streetLbl"></h:outputLabel>
<h:inputText id="streetID" value="#{somebackingbean.address2}" ></h:inputText>
</h:panelGroup>
</h:form>
</body>
</f:view>
我尝试使用以下JavaScript设置焦点:
Function startup(){
document.getElementById("form1:hnoLbl").triggerHandler("focus");
}
和
Function startup(){
document.getElementById("form1:hnoLbl").focus();
}
但它不起作用。我更喜欢使用键盘,希望光标直接指向第一个文本字段。如何从门牌号码开始标记? 提前谢谢。
答案 0 :(得分:1)
在对话框打开后,在对话框的open
事件中尝试设置:
$( "#yourdialog" ).dialog({
open: function() {
$("#form1:hnoLbl").focus();
}
});
<强>更新强>
根据您的评论,您无法从open事件中执行代码,因此请尝试将焦点放在setTimeout()
调用的字段上,该调用在对话框已加载后触发,如下所示:
setTimeout(function() {
document.getElementById("form1:hnoLbl").focus();
}, 400); //adjust the duration accordingly if needed