2016-10-28 7 views
0

2つのタブがある設定1、設定2のHTMLページがあります。私はjavascriptのtab_idに従ってタブをフォーカスしたい。私のコードは以下の通りです。JavaScriptの問題でタブにフォーカスする

HTML

<form action="action_here" method="post" enctype="multipart/form-data" name="form11"> 
    <ul class="tab"> 
     <li><a href="javascript:FormSubmit('1','btn_tab1');" class="tablinks" id="selected_tab1" onclick="openTab(event,'settings1','1');" onfocus="openTab(event,'settings1','1')">settings1</a></li> 
     <li><a href="javascript:FormSubmit('2','btn_tab2');" class="tablinks" id="selected_tab2" onclick="openTab(event,'settings2','2')" onfocus="openTab(event,'settings2','2')">settings2</a></li> 
    </ul> 
    <input type="text" id="tab_id1" name="tab_id" > 
</form> 

Javascriptを

var tab_id = document.getElementById("tab_id1").value; 
if(tab_id == 1){ 
    alert("1"); 
    document.getElementById('selected_tab1').focus(); 
} else if (tab_id == 2) { 
    alert("2"); 
    document.getElementById('selected_tab2').focus(); 
} 

問題:

  1. ページが最初に何のタブが選択されていないロードされました。タブ1を選択したい設定1

2.タブを選択するとタブは選択されませんが、tab_idsはjavascriptで正しく印刷されます。

プラエスこれを手伝ってください。

+0

コードはいつ実行されますか?私はあなたのDOMコンテンツが最初に読み込まれていることを確認したいと思います。 _document ready_はあなたの友人です。 (あなたが好む実装があれば) –

答えて

0

DOMコンテンツの準備が整った後にコードが呼び出されるようにしたいとします。準備がyou might not need jqueryから取られた文書の

function ready(fn) { 
    if (document.readyState != 'loading'){ 
    fn(); 
    } else { 
    document.addEventListener('DOMContentLoaded', fn); 
    } 
} 

ready(function() { 
    // your code 
}) 

実装:あなたはjQueryのようなものを使用したくない場合は、このような何かを行うことができます。

+0

これも機能しません。 :( – tenten

+0

@tentenそれは私のために働いているので、奇妙です:https://jsfiddle.net/yhpqxgkk/ –

関連する問題