0

「住所を追加」ボタンがあり、ボタンをクリックすると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();
    }

しかし、それは機能しません。キーボードを使用すると、カーソルが最初のテキスト フィールドを直接指すようになります。番地からタブを開始するにはどうすればよいですか? 前もって感謝します。

4

1 に答える 1

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
于 2012-10-31T19:06:21.220 に答える