1

以下は、Webページに使用しているAjaxTabContainerの「切り捨てられた」コードです。JavaScript関数でコンテナのタブインデックスを見つける必要がありますが、このコード行がJavaScriptで呼び出されると、「Microsoft JScriptランタイムエラー:オブジェクトが必要です」というエラーメッセージが引き続き表示されます。

        function doValidate() {
            var tabIndex = $('#tabs_header span.ajax_tab_active').index()

「vartabIndex...」の部分をコメントアウトしてもエラーは発生しないので、ここで何が起こっているのか誰かに教えてもらえないかと思います。以下は、tabContainerのコードです。12を超えるテキストボックス入力がある非常に大きなフォームであるため、「切り捨て」ました。両方のタブは、検索を行う2つの異なる方法を表しています。[検索]ボタンをクリックすると、doValidate()メソッドが最初に呼び出され、サイトがコードビハインドに入る前に呼び出されます。また、どのタブがアクティブであるかに関係なく、同じコード行で同じエラーメッセージを受け取ります。

    <asp:TabContainer ID="AdvOrBasicSearch" runat="server" ActiveTabIndex="0">
    <div id="tabs_header">
        <span id="tab1" class="ajax_tab_active">
        <asp:TabPanel ID="basicSearch" runat="server" HeaderText="Basic Search">.../asp:TabPanel>                

        </span>
        <span id="tab2" class="ajax_tab_active">
        <asp:TabPanel ID="advSearch" runat="server" HeaderText="Advanced Search">...</asp:TabPanel>
        </span>
    </div>
    </asp:TabContainer>
4

1 に答える 1

1

私はこの質問に対する答えをすぐに見つけました。tabContainer自体であるJS変数を作成する必要がありました。次に、中に入って_activeTabIndexプロパティ値を取得する必要がありました。以下は変更されたコードです

        function doValidate() {
            var tabIndex = $find("AdvOrBasicSearch");
            var i = tabIndex._activeTabIndex; 
于 2012-09-12T17:02:01.077 に答える