我有一个带有下拉菜单的表单,后跟一个文本输入字段。默认情况下禁用输入框。从菜单中选择指定的选项应启用文本字段。
我做了一些研究,发现了许多类似的问题,但是没有一个解决方案似乎有效。我在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';
}
}
无论点击什么,文本框都会保持禁用状态。我尝试删除默认禁用,但仍然没有运气。我也尝试了其他各种解决方案,但这是最直接的,这就是为什么我不明白为什么它不起作用。
这可能是一件非常明显的事情,我没有看到......我在这方面非常新,所以如果有人愿意解决我的问题,我会非常感激。
答案 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/