【问题标题】:set id on select option to disabled javascript在选择选项上设置 id 以禁用 javascript
【发布时间】:2016-01-21 04:36:46
【问题描述】:

我想在不点击任何按钮的情况下禁用选择选项。我怎样才能做到这一点? 我试过这个。在 JS 中使用 id 选项

html代码:

<select name="select01" id="select01" onchange="handleSelect()">
 <option value="01" id="01">01</option>
 <option value="02" id="02">02</option>
 <option value="03" id="03">03</option>
</select>

JS代码:

<script>
function handleSelect() {
if (this.value == '02') {
    document.getElementById('02').disabled=true;
  }
}
</script>

根据我从代码 JS 中了解到的情况,id 为 02 的选项将被禁用,但它不起作用。我曾尝试在堆栈溢出中进行搜索,但没有找到。

【问题讨论】:

    标签: javascript html select options disabled-control


    【解决方案1】:

    在您的事件处理程序中,您需要传入元素onchange="handleSelect(this)"。然后使用它:

    function handleSelect(ele) {
        if (ele.value == '02') {
            document.getElementById('02').disabled=true;
        }
    }
    

    另请注意,id 不应该是严格的数字,虽然它在 HTML 5 中受支持,但它并不低于 HTML 4.01,它需要以字母开头。

    此外,如果您仅在 JavaScript 中附加事件处理程序,您可以这样做:

    document.getElementById("select01").onchange = function() {
        if (this.value == '02') {
            document.getElementById('02').disabled=true;
        }
    }
    

    【讨论】:

    • @MaxMastalerz 为什么不是,this 会引用事件被附加到的元素?
    • @MaxMastalerz this 是关键字,您不能将其用作参数中的变量名。 Here is how it would be in an example.
    • @SpencerWieczorek 代码不起作用。你在jsfiddle.net/0omwhn15这里给出例子,你可以看到选项02没有被禁用。
    • @FaiZalDong 它确实有效。它仅在选择 02 项目时发生,如您提供的代码中所示。选择该项目,然后当您再次单击该选择时,它将被禁用。虽然如果你想从一开始就禁用它,你只需要document.getElementById('02').disabled=true part
    • @SpencerWieczorek 我只是复制并粘贴您的代码。但仍然无法正常工作。为什么?对于 javascript,我已经在我的 php 文件中打开了 JS 标签
    猜你喜欢
    • 1970-01-01
    • 2019-10-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-10
    • 2012-05-02
    • 2016-05-06
    • 1970-01-01
    相关资源
    最近更新 更多