簡體   English   中英

在 IE6、IE7、IE8 中禁用按鈕?

[英]Disabling a Button in IE6, IE7, IE8?

我正在嘗試禁用按鈕 - 在 IE 中使用 jQuery 1.4.4 以下代碼

jQuery('#id').attr("disabled", true);

與 HTML 的

<button id="id" type="button"
    class="some-class"
     disabled="">Comment</button>

在 FF、Chrome 等中工作,當然,在 IE 中不工作? 我該如何解決?

<button disabled="disabled">似乎在 IE 中不起作用,或者?

編輯:還要注意<button id='id' disabled>foobar</button>是有效的 html

XML/HTML 屬性值是字符串。 "true" 和 "false" 值沒有特殊含義(從技術上講,它們甚至是不允許的) 約定是將值設置為屬性名稱:

jQuery('#id').attr("disabled", "disabled");

另請注意,在您的 HTML 中, <button disabled="">已經禁用該按鈕。 只需忽略disabled屬性或使用 jQuery 重新啟用它:

jQuery('#id').removeAttr("disabled");

我在 IE8 中遇到了相同的問題,並且能夠解決它們,所以我想補充幾點。 phihag 提供的解決方案既對又錯。 確實,XML/HTML 不會接受真正的 boolean 值作為屬性——但我們在這里討論的是 jQuery 語法,它確實接受布爾值作為 arguments,並適當地設置屬性。

隨着輸入元素的禁用和啟用,在 IE 中,我發現始終有效的方法是簡單地直接在 X/HTML 中“硬編碼”初始所需值。 如果要從初始呈現中禁用控件,最好在呈現頁面后立即調用 function 以禁用它。 也許有點雜亂無章,就像許多事情一樣,它不應該是那樣的,但這就是最終為我工作的東西。 很簡單。

希望對某人有所幫助。 我經歷了很多調試工作來確定那個。

這是來自JQuery API 文檔

$( ".selector" ).button( "option", "disabled", true );

即使在帶有 JQuery UI 1.8.14 或更高版本的 IE 8 中,它也適用於我。 在舊版本中,即使在禁用按鈕上也會觸發點擊事件。 因此,在這種情況下,您必須評估按鈕的禁用情況並取消事件:

function clickHandler(event) {
    if ($(event.currentTarget).button("option", "disabled")) {
        return false;
    }
    // other handle stuff...
}

嘗試:

 jQuery('#id').attr("disabled", "disabled");

屬性值應該是字符串,而不是 boolean

只是為此處發布的其他答案添加一些額外的價值。

我認為您的措辭有點偏離,從外觀上看,您想知道如何禁用和重新啟用按鈕跨瀏覽器。

disabled屬性,當存在時,應該總是禁用元素,不管它的值是什么。 推薦值為disabled="disabled"

$('#id').attr("disabled", "disabled")

為了重新啟用該元素,您需要完全刪除disabled的屬性(如其他答案中所指出的)。

$('#id').removeAttr('disabled');

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM