Javascript / jQuery按类名禁用按钮

时间:2014-06-30 16:19:15

标签: javascript jquery css button disabled-input

我有一个复杂的Javascript应用程序,根据应用程序状态和只读权限填充按钮:

但基本上按钮在添加到文档时看起来像这样:

<button type="button" id="..." class="btn btn-link btn-table-action btn-table-add-row" title="Add"></button>

id是自动生成的,之前不知道。除此之外,我们还有几个按钮,需要同时禁用/启用它们。

我试了以下但没有运气:

$(".btn-table-add-row").prop('disabled', true);

setInterval(function() {
  $(".btn-table-add-row").prop('disabled', true);
}, 1000);

var elems = document.getElementsByClassName("btn-table-add-row");
console.log(elems);
for(var i = 0; i < elems.length; i++) {
  elems[i].disabled = true;
}

上面的示例都是在加载文档并且按钮可见之后在页面加载上尝试的。我能够在最后一个例子中阅读elems列表,但它们不会禁用。有什么建议吗?

2 个答案:

答案 0 :(得分:1)

我创建了一个小提琴http://jsfiddle.net/mfleshman/yR9U3/

<button type="button" class="btn btn-link btn-table-action btn-table-add-row" title="Add">test</button>

<button type="button" class="btn btn-link btn-table-action btn-table-add-hide" title="Add">test</button>

$(".btn-table-add-row").prop('disabled', true);
$(".btn-table-add-hide").hide();

你说按钮是&#34;可见&#34;。禁用按钮不会将其隐藏在页面中,除非您有其他CSS选择器执行此操作。

如果您试图隐藏按钮,则需要在元素上调用.hide()。

答案 1 :(得分:0)

正如Satpal和你自己提到的那样,代码是正确的(至少我试过的第一句话),所以问题将是按照创建按钮的顺序,或者可能是在执行其他按钮时出错JS代码会导致您无法运行。

我还为此创建了一个小提琴,您的代码正在运行:http://jsfiddle.net/gx7zC/

$(document).ready(function(){
var btnAmount = Math.floor((Math.random() * 10) + 1);
for(var i=0; i<btnAmount;i++){
    var newButton = document.createElement("button");
    $(newButton).addClass("btn btn-link btn-table-action btn-table-add-row");
    newButton.id = "btn"+i;
    $(newButton).text("btn"+i);
    document.body.appendChild(newButton);
}
$(".btn-table-add-row").prop('disabled', true);

});