从Jquery UI对话框中的第一个文本字段设置默认选项卡

时间:2012-10-31 19:00:00

标签: javascript jquery jquery-ui jsf jquery-ui-dialog

我有“添加地址”按钮,点击按钮会弹出一个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();
    }

但它不起作用。我更喜欢使用键盘,希望光标直接指向第一个文本字段。如何从门牌号码开始标记? 提前谢谢。

1 个答案:

答案 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