代码之家  ›  专栏  ›  技术社区  ›  Tom

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

  •  5
  • Tom  · 技术社区  · 15 年前

    如何通过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 回复  |  直到 15 年前
        1
  •  5
  •   Chris Van Opstal    15 年前

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

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

    这将添加 disabled attribute 到您的浏览器将自动禁用的按钮。如果要使用名称,可以这样使用:

    $("button[name=myButton]").attr("disabled", true);
    
        2
  •  4
  •   David Hancock    15 年前

    试试这个:

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

    这将禁用一个按钮 name 属性等于 nameOfButton .

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

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

        3
  •  0
  •   Spudley Pat    15 年前

    至少已经给出了一个可行的答案。

    不过,我想说的是,最好始终在元素上使用ID,而不仅仅依赖于name属性。name属性实际上只是用来作为过账表单项的标记。

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

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

        4
  •  0
  •   Phil Helix    15 年前

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

    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");
    
        };
    
    }
    
        5
  •  0
  •   bevacqua    14 年前

    创建并使用jquery插件:

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

    像这样用

    $(selector).enable(true|false);
    
        6
  •  0
  •   Sebass van Boxel    13 年前

    假设按钮是:

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

    然后将禁用:

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

    工作得很好

        7
  •  0
  •   Jonathan Lin    13 年前

    我用 jQuery's prop() :

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

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

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

    在你的代码中。