2010-09-24 59 views
5

如何通過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> 
+2

你應該在做一個新的帖子之前嘗試搜索,最近幾天同一個問題已被問好幾次。 – RobertPitt 2010-09-24 10:37:01

回答

5

我會建議使用ID,而不是名稱,如:

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

這將disabled attribute添加到按鈕,你的瀏覽器將自動禁用。如果你想使用的名字,你可以使用它像這樣:

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

這個問題要求通過名稱而不是id來禁用/啓用按鈕。 – 2010-09-24 10:47:08

+0

此代碼無效,請參閱我上面更新的html代碼! – Tom 2010-09-24 11:00:47

+0

啊!感謝您的評論,更新。 – 2010-09-24 11:22:37

4

試試這個:

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

這將禁止與name按鈕屬性等於nameOfButton

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

這將從相同的按鈕中刪除禁用屬性。

+0

謝謝,但這段代碼不起作用,請參閱我上面更新的html代碼! – Tom 2010-09-24 11:01:03

+1

試試我的修改答案:) – 2010-09-24 11:07:35

0

至少有一個答案已經給出了應該工作。

然而,我會說,你會被建議始終在你的元素上有一個ID,而不只是依賴於name屬性。名稱屬性實際上僅用作發佈表單項的標記。

CSS和Javascript DOM都經過優化以查看ID。你可以通過名字來完成它,就像你已經給出的答案一樣,但效率要低得多 - 即使你可以用相同數量的代碼來完成,瀏覽器也必須在幕後做更多的工作。

另外一些按名稱訪問元素的技術在所有瀏覽器中都不可用(尤其是IE的老版本在CSS中具有[attribute]類的問題)。

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

    }; 

} 
0

創建和使用jQuery插件:

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

使用這樣

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

假設該按鈕是:

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

則禁止將這樣做:

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

完美的作品

0

我用jQuery's prop()

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

要再次啓用按鈕,這樣做:

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

在某個地方我們的代碼。