我有四个按钮,其中button2为id。
的document.getElementById( 'BUTTON2')禁用=真;
使用上面的代码,只禁用一个按钮。我想要禁用所有按钮。
任何想法
谢谢。
答案 0 :(得分:9)
我有四个按钮,其中button2为id。
不要这样做,it's invalid。 id
值必须在文档中是唯一的。
相反,也许给他们相同的class
:
<input type="button" class="button2">
<input type="button" class="button2">
<input type="button" class="button2">
<input type="button" class="button2">
然后在modern browsers上你可以这样做:
var list = document.querySelectorAll(".button2");
var index;
for (index = 0; index < list.length; ++index) {
list[index].disabled = true;
}
适用于当前版本,几乎所有内容。它不适用于IE7及更早版本。如果你需要支持这些,我建议使用一个像样的DOM操作库(如jQuery,YUI,Closure或any of several others),它们可以看到按类别划分元素。
或者,你可以给他们相同的name
并使用旧的getElementsByName
,即使是IE6和IE7也是如此:
<input type="button" name="button2">
<input type="button" name="button2">
<input type="button" name="button2">
<input type="button" name="button2">
那么循环很多:
var list = document.getElementsByName("button2");
var index;
for (index = 0; index < list.length; ++index) {
list[index].disabled = true;
}
但是有一些注意事项要使用name
:
如果这是form
,虽然在这种情况下执行此操作会很好,因为这些是按钮,但您可能不想使用{{1}在一般情况下为此。例如,如果对多个文本字段或选择框使用相同的name
,则必须确保在收到重复的字段名称时在服务器端处理该权限。
同样,虽然这个用途很好,name
只是表单字段的有效属性,而不是其他类型的元素。所以再次对按钮没问题,你不想一概而论。
小心不要在同一页面上使用name
作为"button2"
,因为IE8及更早版本中有一个错误会使其表现得像{{1} }} id
即使它没有。与name
相关的here就是一样的错误。
所以一般来说,"button2"
可能是更好的方法。
答案 1 :(得分:0)
单个页面上只应出现1个id值。为每个按钮使用不同的id值(例如,对于一个按钮使用id =“button1”,对于另一个按钮使用id =“button2”。
然后您可以一次禁用每个按钮:
document.getElementById('button1').disabled=true;
document.getElementById('button2').disabled=true;