2014-09-25 59 views
1

我有一個標籤式的視圖的頁面,如下所示:http://demos.inspirationalpixels.com/Tabs-with-HTML-CSS-&-jQuery/通行證元素ID爲JS功能時點擊的元素

我的問題是,我對每個選項卡的形式,外頁面上的選項卡我有一個按鈕,可以重置所有表單並進行提交,但我希望重置當前頂部選項卡上的表單。

所以我覺得最好的辦法就是太有它,所以當被點擊的標籤,如此它知道哪些形式如果點擊重置值發送給標籤形式復位腳本。

的形式有「tabf1」,「tabf2」等標識,所以我只需要在選項卡中單擊發送選項卡數。

我已經試過什麼:

<ul class="tab-links"> 
    <li onclick="setTabNo(this)" id="1" class="active">  
    <a href="#tab1">Basic</a></li> 

    <li onclick="setTabNo(this)" id="2" ><a href="#tab2">Earnings</a></li> 

    <li onclick="setTabNo(this)" id="3" ><a href="#tab3">Deductions</a></li> 

    <li onclick="setTabNo(this)" id="4" ><a href="#tab4">Taxes</a></li> 
</ul> 


function resetAll() { 
    document.getElementById("tabf1").reset(); 
    document.getElementById("tabf2").reset(); 
    document.getElementById("tabf3").reset(); 
    document.getElementById("tabf4").reset(); 
} 

var tabNo; 
function setTabNo() { 
    var tabNo = this.id; 
} 

function resetTab() { 
    document.getElementById("tabf"+tabNo).reset(); 
} 

我已經與上點擊ID試圖爲藏漢的一部分,這基於以下的答案,但仍然沒有爲我工作。

變量是被稱爲在另一個函數,而應是細如我首先定義它既之外。

解決:

它沒有得到ID可悲的是,但我只是把值函數括號中的ID的點擊數。

所以:

onclick="setTabNo('2')" 

然後:

function setTabNo(idv) { 
    tabNo = idv; 
} 

回答

2

你並不需要在所有通過ID,它已經可以作爲被點擊的元素的屬性:

function setTab2(element) { 
    var id = element.id; 
    ... 
} 

然後更改onclick屬性onclick="setTab2(this)"。後者確保點擊處理程序傳遞了對被點擊元素的引用。

注意,這將是最好不要在所有使用內聯事件處理程序:

$('#2').on('click', setTab2); 

注:數字ID在HTML5只被允許,並且 CSS3中允許的。

+0

我嘗試的第一個方式,它不工作,我已經更新了我的問題吧,也許有一個錯誤。 – bob 2014-09-25 14:11:50

+0

你有兩個'tabNo'變量 - 外(全局)一個是由內'setTabNo'當地的一個隱藏的。 – Alnitak 2014-09-25 14:17:34

+0

p.s.請不要修改你的問題 - *添加*的細節,不要取代它。添加它會導致上下文丟失,使得您收到的答案對未來的讀者來說變得不那麼重要。 – Alnitak 2014-09-25 14:18:17