jQuery禁用按钮不起作用

Eri*_*oon 19 html jquery

我曾经将事件绑定到我的按钮,如:

$("input[name=add]").live("click",function(){...});
Run Code Online (Sandbox Code Playgroud)

但我有另一个功能,使他们"启用"和"禁用",如:

RefreshBox() {

    $("input[name=add]").each(function(){
        if(...)
            $(this).attr("disabled","disabled");
        else
            $(this).attr("disabled","");
    })

}
Run Code Online (Sandbox Code Playgroud)

但实际上它并没有像我预期的那样发挥作用.按钮仍然可以点击,事件仍然可以顺利进行.

PS:jQuery 1.4.1浏览器:IE8,禁用按钮后仍然可以正常工作.浏览器:Chrome,禁用按钮成功.

Ada*_*kis 44

您将要使用prop函数而不是attr:

$(this).prop("disabled", true);
Run Code Online (Sandbox Code Playgroud)

$(this).prop("disabled", false);
Run Code Online (Sandbox Code Playgroud)

编辑

OP是使用jQuery 1.6.1前,这就是为什么attr对于disabled不工作很正确(较旧IE).虽然prop是首选disabled,但1.6.1后attr应该(并且确实)也可以.

  • @PeeHaa - 我不是这里的专家,但是jQuery文档建议使用prop而不是attr来禁用.OP的问题在于IE8让我觉得这可能是道具应该照顾的边缘情况之一 (2认同)

Wes*_*row 5

尝试$("input[type=submit]").removeAttr("disabled");启用该按钮.