2016-07-17 9 views
1

tabsを使用して、多くの入力フィールドを持つ長いフォームを分割しています。要素が現在のタブにある場合のjQuery

私のフォームには、4つのタブとタブ形式の下にあるユーザー選択のプレビューがあります。

タブの下のプレビューでは、ユーザーが入力要素を持つタブの入力要素までスクロールバックできるアイコンを配置しました。

これは、ユーザーがスクロールしたい正しいタブを表示しているときに有効です。たとえば、入力要素がタブ1にあり、ユーザーがタブ1を表示している場合、ユーザーはタブ1でその要素までスクロールバックできます。

ただし、入力要素がタブ1にあり、ユーザーがタブ2を表示すると、スクロールアップは機能しません。私は、これは、要素がタブ/フォーム上に表示されていないためだと仮定しています(ただし、要素は実際に存在します)。

したがって、条件付きif/else文を作成して、要素に到達可能かどうかをテストしましたが、条件は常にtrueを返します。要素がタブに到達可能かどうかを確認するために条件がどのようなものでなければならないのか分かりません。

私はさまざまな条件を試しましたが、すべて真です。

私は誰かが実行可能な提案を持っていることを望んでいます。ここで

が私のコードです:

function scrollUpSingleDocumentDetails(id){ 
    //if(!($("#"+id).length)){ 
    if($("#"+id).css('visibility') === 'hidden'){ 
     $('html,body').animate({scrollTop: $("#"+id).offset().top-50},'slow'); 
    } else { 
     $('html,body').animate({scrollTop: $("#id_details_headline").offset().top-50},'slow'); 
    } 
} 

答えて

2

は、要素を取得するには、タブのIDを使用get the current tab in jQuery UI tabsあたり

として現在のタブを確認し、それが「currenttab」だったと言うことができますし、あなたの言うことができます"inputId" で入力のid:

var tab=document.getElementById('currentTab'); 
var input = document.getElementById('inputId'); 

if (tab.contains(input)) 
{ 
    alert("input is visible") 
} 
関連する問題