1

我在网页上有一个 asp.net 按钮。

OnClientClick 代码禁用该按钮,以便用户不能多次提交。它还将按钮的文本更改为“请稍候...”

到目前为止一切都很好!

麻烦的是,因为它正在被禁用,所以“请稍候......”文本看起来很垃圾......我如何设置按钮的样式,以便即使它被禁用,它看起来也可以在 javascript 中启用。

    <script type="text/javascript">
    function btnSubmit_ClientClick(Client) {
        var ok = Page_ClientValidate();
        if (ok) {


            Client.style.color = 'White';
            Client.style.backgroundColor = '#9A4D9E';

            Client.value = 'Please wait...';
            Client.disabled = true;
        }
    }
</script>

编辑开始:

这是启用的按钮:

启用

这是禁用的按钮: 禁用

...如您所见,文字是灰色和白色的?

为了更清楚,@user503034 建议在 CSS 中使用 [disabled]。这是我的代码,但我仍然有同样的问题:

    button[disabled]:active, button[disabled], input[type="reset"][disabled]:active, input[type="reset"][disabled], input[type="button"][disabled]:active, input[type="button"][disabled], select[disabled] > input[type="button"], select[disabled] > input[type="button"]:active, input[type="submit"][disabled]:active, input[type="submit"][disabled]
{
    color: Green;
    background-color: #9A4D9E;
    cursor: default;

}
4

2 回答 2

1

你可以试试这个

<script type="text/javascript"> 
function btnSubmit_ClientClick(Client) { 
    var ok = Page_ClientValidate(); 
    if (ok) { 


        Client.style.color = 'White'; 
        Client.style.backgroundColor = '#9A4D9E'; 

        Client.value = 'Please wait...'; 
        if (Client.ClassName.indexOf("disabled")>0)
            return false;
        else
            Client.ClassName += " disabled";
    } 
} 

这不会完全禁用该按钮,但不会让您单击它。现在,您可以随意设置样式。如果这是表单上的提交按钮,您也可以在表单上执行 onSubmit 并在此处返回 false,以防止有人只是按 Tab 键并按 Enter 键。可能不是您正在寻找的东西,但它确实可以完成工作。

如果您想禁用按钮并在此之后为其设置样式,请使用 user503034 的建议并进行一项额外更改,而不是仅在 CSS 中执行 [disabled],而是执行 input[disabled="disabled"], input.disabled 即可跨所有主要浏览器。

于 2010-11-12T05:01:37.747 回答
0

也许就是你正在寻找的。

于 2010-11-11T15:50:58.033 回答