2010-01-09 40 views
13

Firefox不會在禁用的字段上顯示工具提示。Firefox不會在禁用的輸入字段上顯示工具提示

下列顯示工具提示在IE /鉻/ Safari瀏覽器除了火狐:

<input type="text" disabled="disabled" title="tooltip text."/> 

爲什麼上禁用字段不火狐顯示工具提示?有沒有解決這個問題的方法?

+1

自Firefox 8起,懸停時會顯示禁用元素的標題。 – 2012-04-24 17:46:14

回答

9

似乎是一個(非常古老,非常遺棄)的錯誤。看到Mozilla錯誤#274626#436770

我想這也可以解釋爲預期的行爲。

想到一個可怕的解決方法是使用z-index將按鈕與一個不可見的div重疊,title屬性;另一個以某種方式重新激活按鈕「onmouseover」,但巧妙地攔截並垃圾該按鈕上的任何事件。

+0

很高興知道它的一個已知問題,並且已報告。吮吸,但沒有人正在努力。謝謝(你的)信息。 – 2010-01-09 20:45:44

+1

我同意。我不確定這是一個錯誤,而是對標準的解釋,它表示禁用的元素沒有得到關注。不過,我可以看到它的用處。 – Rob 2010-01-09 20:55:09

+2

我向Firefox提交了一個修補程序,修復了#274626中禁用的工具提示,因此希望它不會被釋放。 – 2011-06-23 14:29:39

-1

您可以使用javascript。使用mouseover事件。

(許多像JQuery和Mootools這樣的庫都提供了工具提示插件,使用它們甚至可以設置工具提示的樣式)。

+0

是的,立即想到了。但是,如果有一種方法可以不使用JavaScript,那就太好了。謝謝。 – 2010-01-09 20:46:34

1

的z索引的事情可以做這樣的:

.btnTip 

    { 

    position: absolute; 

    left: 0%; 

    right: 0%; 

    z-index: 100; 

    width: 50px; 

    /*background-color: red;*/ 

    height: 17px; 

    } 

(...)

<div style="background-color: gray; width: 400px;"> 

    Set width of the tip-span to the same as the button width. 

    <div style="text-align: center;"> 

    <span style="position:relative;"> 

     <span class="btnTip" title="MyToolTip">&nbsp;</span> 

     <input type="button" name="" disabled="disabled" value="Save" style="width: 50px;height:17px;" />           

    </span> 

    </div>    

左右有助於定位位於禁用元素頂部的主機。 z-index定義了您將元素放入的圖層類型。

z層的數量越多,它就越「頂」。

主機和/或禁用元素的z-index應該動態設置。

當禁用的元素被禁用時,您希望工具提示主機位於頂部,反之亦然 - 至少如果您希望能夠在未禁用時單擊您的元素(按鈕)。

3

可以解決這個使用jQuery這樣的代碼:

if ($.browser.mozilla) { 
     $(function() { 
      $('input[disabled][title]') 
       .removeAttr('disabled') 
       .addClass('disabled') 
       .click(function() {return false}) 
      }) 
    } 
1

我都面臨着類似的問題,我可以用juery和小CSS類解決它,你將需要創建兩個新的span元素和CSS類如下所示

就在這是在各地的應用程序或網站

.DisabledButtonToolTipSpan 
{ 
position :absolute; 
z-index  :1010101010; 
display  :block; 
width  :100%; 
height  :100%; 
top   :0;   
} 

要顯示工具提示˚F使用一般的JS和CSS文件中添加這些或在Firefox瀏覽器中禁用按鈕。

$(window).load(function() { 
    if ($.browser.mozilla) { 
       $("input").each(function() { 
        if ((this.type == "button" || this.type == "submit") && this.disabled) { 

         var wrapperSpan = $("<span>"); 
         wrapperSpan.css({ position: "relative" }); 
         $(this).wrap(wrapperSpan); 

         var span = $("<span>"); 
         span.attr({ 
          "title": this.title, 
          "class": "DisabledButtonToolTipSpan" 
         }); 
         $(this).parent().append(span); 
        } 
       }); 
      } 
     }); 

希望這會有所幫助, Preetham。

6

我想你正在使用一些框架,如bootstrap。如果是這樣,它會將pointer-events: none添加到「禁用」元素,因此所有鼠標事件都將被忽略。

.btn[disabled] { 
    pointer-events: auto !important; 
} 

可以解決這個問題。

+0

你是一個拯救生命的人!完美地工作......這正是Bootstrap的問題......我們只需要顯示標題即使按鈕被禁用以通知最終用戶該按鈕的功能! ;) – 2014-10-23 18:14:40