2013-10-17 166 views
-1

我有4個答案按鈕,根據答案是否正確觸發一個打勾或十字顯示(「showDiv01」/「showDiv02」),我想禁用所有點擊之後的按鈕,到目前爲止,我只能禁用點擊「onClick = this.disabled ='true';」的按鈕。通過點擊禁用多個按鈕

<button id="none" onClick="showDiv01(); this.disabled = 'true';">Almond White</button><br> 
<button id="score" onClick="showDiv02(); this.disabled = 'true';">Raspberry Diva</button<br> 
<button id="none" onClick="showDiv01(); this.disabled = 'true';">Melon Sorbet</button><br> 
<button id="none" onClick="showDiv01(); this.disabled = 'true';">Gentle Lavender</button><br> 

任何解決方案?

+2

元素無法共享ID的btw –

+1

您必須選擇要使用javascript禁用的按鈕。一旦你知道了一點javascript,回來問問題。 – MarioDS

+1

ID是唯一的。改用類。 –

回答

0

我建議在你的按鈕中添加一個通用類(對於這個例子,假設你的類爲btnClass),也可以爲每個按鈕點擊使用相同的函數,不需要爲做按鈕的按鈕創建獨特的函數通過在功能上el PARAM被點擊

function showDiv(el) { 
    //"el" should be "this" passed in to the func 
    var buttons = document.getElementsByClassName("btnClass"); 
    for (var i = 0; i < buttons.length; i++) { 
     buttons[i].disabled = true; 
    } 
} 

<button id="none" onClick="showDiv(this)"></button> 

隨着this傳遞,您必須將元素直接訪問:同一類型的行爲。因此el.id將導致點擊元素的ID。

0

你有showDiv01();函數調用點擊也。放置代碼來禁用通過id查找它們的按鈕。

除了我不認爲你可以有不同的按鈕,如「無」,我也會考慮保持在按鈕id以外的地方。 我會將一些參數傳遞給showDiv01();函數,如showAnswerDiv(1);showAnswerDiv(2);

這樣你就可以根據參數採取行動,這比做出有效或無效答案的功能好多了,並將其固定到按鈕上。