如何通过jquery禁用/启用按钮

时间:2010-09-24 10:30:53

标签: jquery

如何通过jquery(按名称)禁用/启用特定按钮?

该按钮没有ID,只有以下代码:

<button onclick="$('ChangeAction').value='SaveAndDoOrder';" value="Bye" name="SaveAndDoOrder" type="submit">
        <i class="Icon ContinueIconTiny"></i>
        <span class="SelectedItem">Bye</span>
      </button>

7 个答案:

答案 0 :(得分:5)

我建议使用ID代替名称,例如:

$("#myButton").attr("disabled", true);

这会将disabled attribute添加到您的浏览器将自动禁用的按钮。如果你想使用名字,你可以像这样使用它:

$("button[name=myButton]").attr("disabled", true);

答案 1 :(得分:4)

试试这个:

$("button[name=SaveAndDoOrder]").attr("disabled", "disabled");

这将停用name属性等于nameOfButton的按钮。

$("button[name=SaveAndDoOrder]").removeAttr("disabled");

这将从同一个按钮中删除disable属性。

答案 2 :(得分:0)

至少已经给出了一个应该有用的答案。

我要说的是,你最好总是在你的元素上有一个ID,而不仅仅是依赖name属性。 name属性实际上仅用作发布表单项的标记。

CSS和Javascript DOM都经过优化,可以查看ID。您可以通过名称来完成,就像您已经给出的答案一样,但效率低得多 - 即使您可以使用相同数量的代码执行此操作,浏览器也必须在幕后进行更多工作。 / p>

此外,一些按名称访问元素的技术并非在所有浏览器中都可用(特别是旧版本的IE在CSS中的[attribute]类中存在问题)。

答案 3 :(得分:0)

这是我用来禁用或重新启用控件的代码:

function handleControlDisplay(className, foundCount, checked) {



    var button = jQuery(className);



    if (foundCount > 0 && foundCount == checked) {

        // enable

        button.removeAttr("disabled");

    }

    else {

        // set the disabled attribute

        button.attr("disabled", "true");

    };

}

答案 4 :(得分:0)

创建并使用jQuery插件:

; (function($) {
    $.fn.enable = function(b) {
        return this.each(function() {
            this.disabled = !b;
        });
    };
})(jQuery);

像这样使用

$(selector).enable(true|false);

答案 5 :(得分:0)

假设按钮是:

 <asp:Button runat="server" ID="btn1" Text="button!"/> 

然后将禁用:

$(document).ready  (function () {
    var a = $('#btn1');
    a.attr("disabled", function () {
        return "disabled";
    });     
}); 

完美运作

答案 6 :(得分:0)

我使用jQuery's prop()

$('#generate').click(function() {
    $(this).prop('disabled', true);
}

要再次启用此按钮,请执行以下操作:

$(this).prop('disabled', false);

代码中的某处。