无法根据下拉选择(JavaScript)禁用文本字段

时间:2014-07-31 14:42:49

标签: javascript html

我有一个带有下拉菜单的表单,后跟一个文本输入字段。默认情况下禁用输入框。从菜单中选择指定的选项应启用文本字段。

我做了一些研究,发现了许多类似的问题,但是没有一个解决方案似乎有效。我在jsfiddle上尝试了一个非常简单的代码,看看解决方案本身是否存在问题,特别是我的代码。我的原始代码不起作用,简化版也没有。这是简化的代码示例:

HTML:

<select id="menu" onChange="checkOption()">
    <option value="A">Option A</option>
    <option value="B">Option B</option>
    <option value="C">Option C</option>
    <option value="D">Option D</option>
</select>
<input type="text" id="input" disabled>

JavaScript的:

function checkOption() {
    if(document.getElementById("menu").value != "A") {
        document.getElementById("input").disable = 'false';
    }
    else {
        document.getElementById("input").disable = 'true';
    }
}

无论点击什么,文本框都会保持禁用状态。我尝试删除默认禁用,但仍然没有运气。我也尝试了其他各种解决方案,但这是最直接的,这就是为什么我不明白为什么它不起作用。

这可能是一件非常明显的事情,我没有看到......我在这方面非常新,所以如果有人愿意解决我的问题,我会非常感激。

1 个答案:

答案 0 :(得分:3)

disabled而非disable

document.getElementById("input").disabled = true;

您还可以将this传递到处理程序并引用该代码(也不需要if, else - 只需disable直接根据条件清除代码:

<select id="menu" onChange="checkOption(this)">

function checkOption(obj) {
    var input = document.getElementById("input");
    input.disabled = obj.value == "A";
}

Aaaaand a fiddle:http://jsfiddle.net/23EpC/