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

如何通过jquery禁用/启用按钮,jquery,Jquery,如何通过jquery(按名称)禁用/启用特定按钮 按钮没有ID,只有以下代码: <button onclick="$('ChangeAction').value='SaveAndDoOrder';" value="Bye" name="SaveAndDoOrder" type="submit"> <i class="Icon ContinueIconTiny"></i> <span class="SelectedItem"

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

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

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

拜伊

我建议使用ID而不是名称,如:

$("#myButton").attr("disabled", true);
这会将添加到按钮,然后浏览器将自动禁用该按钮。如果要使用名称,可以这样使用:

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

$("button[name=SaveAndDoOrder]").attr("disabled", "disabled");
这将禁用具有
名称
属性的按钮,该属性等于
按钮的名称

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

这将从同一按钮中删除禁用属性。

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

不过我要说的是,我们建议您在元素上始终有一个ID,而不仅仅依赖name属性。name属性实际上仅用作过帐表单项的标记

CSS和JavaScriptDOM都经过了优化以查看ID。你可以按名字来做,就像你已经得到的答案一样,但效率要低得多——即使你可以用同样数量的代码来做,浏览器也必须在幕后做更多的工作


此外,按名称访问元素的一些技术在所有浏览器中都不可用(旧版本的IE尤其在CSS中的[attribute]类方面存在问题)。

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

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");

    };

}

创建并使用jQuery插件:

; (function($) {
    $.fn.enable = function(b) {
        return this.each(function() {
            this.disabled = !b;
        });
    };
})(jQuery);
像这样使用它

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

假设按钮为:

 <asp:Button runat="server" ID="btn1" Text="button!"/> 
非常有效

我使用:

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

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

在代码中的某个地方。

在发布新帖子之前,您应该尝试搜索,过去几天,相同的问题已经被问了好几次。该问题询问的是如何通过名称而不是id禁用/启用按钮。谢谢,但此代码不起作用,请参阅上面我更新的html代码!
$('#generate').click(function() {
    $(this).prop('disabled', true);
}
$(this).prop('disabled', false);