2010-11-11 38 views
1

我在网页上有一个asp.net按钮。使用javascript&OnClientClick设计按钮

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

迄今为止所有的好!

问题是,因为它正在禁用“Please wait ...”文本看起来很垃圾...... 如何设置按钮样式,以便即使禁用它,它也会在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> 

开始编辑的:

这里的启用按钮:

enabled

,这里是禁用的按钮: disabled

...正如你所看到的文字是一种灰色和白色?

为了进一步清晰起见,@ 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; 

} 
+0

你发布的代码似乎是正确的 - 它不适合你吗?它有什么问题? – Oded 2010-11-11 15:41:14

+0

嗨,是的,它确实工作....但它看起来**像一个禁用的按钮...我希望它看起来像一个启用按钮。 谢谢! – BIDeveloper 2010-11-11 15:42:31

+0

我的观点是,你已经改变了风格 - 为什么不把它看起来像一个启用的按钮?为启用的按钮设置一个CSS类,并在按钮上进行切换。 – Oded 2010-11-11 15:44:49

回答

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中执行[禁用],执行input [disabled =“disabled”]输入。禁用,可以在所有主流浏览器上使用。

+0

感谢您的回复......也喜欢这个想法......当我尝试并运行时,我得到: 'ClassName'为空或不是对象 – BIDeveloper 2010-11-12 08:27:13

+0

这是因为你的按钮没有类..只要做一个检查在使用ClassName之前为null。 – 2010-11-12 14:28:43

+0

谢谢 - 这正是我所追求的 - 非常感谢。 – BIDeveloper 2010-11-18 14:53:33

0

也许that是你在找什么。

+0

嗯......我试过......是的,我可以改变按钮的样式 - 但 - 文字保持不变 - 换句话说,我不认为这是解决方案。为了清楚起见,我将代码添加到了原始问题中。 – BIDeveloper 2010-11-12 11:06:40