单击即可禁用多个按钮

时间:2013-10-17 13:11:52

标签: javascript html

我有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 个答案:

答案 0 :(得分:0)

我建议在按钮中添加一个公共类(对于这个例子,假设你是btnClass),同样,你可以为每个按钮单击使用相同的功能,不需要为执行相同类型行为的按钮:

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参数单击的元素。因此el.id将生成所点击元素的ID。

答案 1 :(得分:0)

您也点击了showDiv01();函数。放置代码以禁用按ID查找它们的按钮。

此外我不认为你可以为不同的按钮(例如“none”)拥有相同的id,我也会考虑在按钮ID以外的地方保持答案。 我会将一些参数传递给showDiv01();函数showAnswerDiv(1);showAnswerDiv(2);

这样你可以根据参数采取行动,这比制作有效或无效答案的功能并将其固定到按钮要好得多。