0

現在フォーカスされているコンポーネントIDを取得しようとしています。このために、私は次のjQueryを使用しました。

<script>
    $(document).ready(function(){
        $("*").focus(function(){
            $('#hiddenInput').val($(this).attr('name'));
        });
    });
</script>

2つのタブがあるatabviewがあり、tabviewdynamic属性がに設定されていtrueます。tab2に切り替えても、tab2のコンポーネントに対してjQueryが起動されません。tab2のコンポーネントのHTMLソースが生成されていないことに気づきました。問題を解決するにはどうすればよいですか?

以下に示す生成されたマークアップ:

<div class="ui-tabs-panels">
    <div id="j_idt76:j_idt77" class="ui-tabs-panel ui-widget-content ui-corner-bottom" role="tabpanel" aria-hidden="false">
        <table cellpadding="5" cellspacing="5">
            <tbody>
                <tr>
                    <td><label> Customer ID</label></td>
                    <td>
                        <input id="j_idt76:j_idt82" name="j_idt76:j_idt82" type="text" value="0893000453 " size="45" readonly="readonly" class="ui-inputfield ui-inputtext ui-widget ui-state-default ui-corner-all" />
                        <script id="j_idt76:j_idt82_s" type="text/javascript">PrimeFaces.cw('InputText','widget_j_idt76_j_idt82', id:'j_idt76:j_idt82'});</script>
                    </td>
                </tr>
            </tbody>
        </table>
    </div>
    <div id="j_idt76:j_idt147" class="ui-tabs-panel ui-widget-content ui-corner-bottom ui-helper-hidden" role="tabpanel" aria-hidden="true"></div>
</div>
4

2 に答える 2

1
<script>
        $(document).ready(function(){
             $("body").delegate(":input", "focus", function(){
                 $('#hiddenInput').val($(this).attr('name'));
              });
        });
</script>


We can achieve this using delegate function.
于 2012-11-09T11:18:51.650 に答える
0

以下に示すタブビューのマークアップ...

私はいくつかのことに気づきました、

1. tab2をクリックしても、tab2のコンポーネントのマークアップが生成されないため、コンポーネントにアクセスできません。

2. Ajaxを使用してフォームを更新すると、ajax呼び出しの前にアクセス可能だったコンポーネントにアクセスできません。

    <div class="ui-tabs-panels">
             <div id="j_idt76:j_idt77" role="tabpanel" aria-hidden="false">
                                    <table>
                                        <tbody>
                                            <tr>
                                                <td><input id="j_idt76:j_idt82" name="j_idt76:j_idt82" type="text" /></td>
                                                Other components....
                                            </tr>
                                        </tbody>
                                    </table>
                                </div>
              <div id="j_idt76:j_idt147" role="tabpanel" aria-hidden="true"></div>
        </div>

上記のコードでは、Tab1(j_idt76:j_idt77)のコンポーネントのマークアップが生成されますが、Tab2(j_idt76:j_idt147)のマークアップは生成されません。

于 2012-11-09T08:53:57.717 に答える