为什么在FireFox中禁用时链接按钮不会变灰?

时间:2009-04-27 03:51:22

标签: asp.net firefox render linkbutton

为什么当我在按钮上设置enabled = false时,它在Firefox中无法正确呈现?它没有变灰,而是变蓝了。

[UPDATE]

ASP.net已经在链接上删除了这样的标签,因此唯一需要的是将链接变灰。换句话说,CSS样式更改不是功能更改。

以下内容有效地解决了在Firefox和Google Chrome中未显示为灰显的禁用按钮。我将它放入我的样式表中,现在所有链接按钮都能正确呈现。

一个[无效] {
  颜色:灰色!重要;  text-decoration:none!important;   }

5 个答案:

答案 0 :(得分:11)

a[disabled]
{
   color:Grey; text-decoration:none;
}

为我工作,谢谢...

答案 1 :(得分:2)

W3Scholl开始,“已启用”属性不是XHTML 4的标准属性(它是Microsoft标准。)。您应该从超链接中删除href属性或使用以下代码

// cancel click event.
LinkButton1.Attributes["OnClick"] = "return false;";
// set css to display same disabled link in all browser
LinkButton1.CssClass = "LinkButton_Disabled";

答案 2 :(得分:2)

当您禁用按钮时,它会向按钮添加“aspNetDisabled”类。所以你可以随心所欲地设置“aspNetDisabled”类。

 .aspNetDisabled {
        color: black;
        background-color: #e3e3e3;
        text-decoration: none;
    }

答案 3 :(得分:1)

在C#中,我发现扩展对于创建跨浏览器解决方案最有帮助。

public static class Extensions
{
    public static void Disable(this HtmlAnchor obj)
    {
        obj.Attributes.Remove("href");
        obj.Attributes.Add("disabled", "true");
        obj.Style.Add("color", "gray");
    }
}

答案 4 :(得分:0)

下面的解决方案是按钮没有链接,但也可以为链接完成。

var obj = document.getElementById('buttonId'');
getLabel = function(elem){
if (elem.id && elem.id=="label") {
elem.id = "disabledLabel";
}
};            
Dom.getElementsBy(getLabel ,'td', obj);

这会将按钮显示为禁用或灰显。