2013-07-11 63 views
0

根据我在上面的下拉框中选择的选项,它应该使文本框变灰,或让用户输入它们。我正在使用以下内容:无法使用JavaScript禁用文本框

document.getElementById(\'freq2\').disabled=true; 

这不起作用。但是,我可以使用下面的蛮好的,它成功地消失了:

document.getElementById(\'freq2\').style.display = \'none\'; 

为什么我不能灰色的文本框,但我可以隐藏起来,并改变它们的颜色,等等?

+3

该属性是'禁用',而不是'禁用' – Ian

+0

对不起,这是我有。它不工作。将在上面编辑。任何其他提示? – user2537383

+0

这是在这里工作:http://jsfiddle.net/6A8Zd/你为什么逃避报价?这些陈述是另一个字符串的一部分吗 – cfs

回答

1

你需要避开你的引号。

document.getElementById(\'freq2\').disabled=true; 

必须

document.getElementById('freq2').disabled=true; 

和JavaScript将是无效的,所以它不会禁用它。


您可以在fieldset

<fieldset id="myfields" disabled="disabled"> 
    <input type="text" /> 
    <input type="text" /> 
</fieldset> 

JavaScript的包裹多文本框:

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

CSS来删除边框:

fieldset { 
    border: 0; 
} 

JSFiddle

+0

我可以批量禁用它们,谢谢。它确实在它周围创造了一些丑陋的边框,但是与我的格式相混淆。有小费吗? – user2537383

+0

@ user2537383您可以使用我在问题中添加的CSS隐藏它。如果它帮助你请注意,并标记为答案。谢谢 – Scott

+0

我绝对会标记你的。感谢所有的帮助。最后一件事(希望)。我怎样才能使框默认启用,而不是禁用? – user2537383

1

您正在寻找disabled属性(而不是禁用)。此外,没有必要逃避你的报价

document.getElementById('freq2').disable=true;

Working Demo

+0

对不起,这是我的。它不工作。将在上面编辑。任何其他提示? – user2537383

0

尝试的theese之一:

document.getElementById(\'freq2\').setAttribute('disabled', 'disabled'); 

或者

document.getElementById(\'freq2\').setAttribute('disabled', true); 

样品:http://jsfiddle.net/javitube/wzzHC/