2008-10-06 65 views
2

我有一个按钮,这个解决方案:禁用2个按钮的形式提交(ASP.NET)

myButton.Attributes.Add("onclick", "this.disabled=true;" + GetPostBackEventReference(myButton).ToString()); 

这对于一个按钮,效果很好,就如何扩大这对2个按钮的任何想法?命令

myButton.Attributes.Add("onclick", "this.disabled=true; document.getElementById('" 
+ button2.ClientID + "').disabled = true;" 
+ GetPostBackEventReference(myButton).ToString()); 

回答

3

您可以添加一个客户方onsubmit处理,或者你可以做到这一点

myButton.Attributes.Add("onclick", "this.disabled=true;document.getElementbyID("Button2").disabled=true;" + GetPostBackEventReference(myButton).ToString()); 
+0

这个答案可能是更好的语法明智的。 – 2008-10-06 16:34:54

+0

什么引用这个单引号双引号?对于getElementById – 2008-10-06 17:03:26

+0

GetElementById接受一个字符串,因此单引号。 – FlySwat 2008-10-06 17:07:39

0

更改为:

1

更改JavaScript来引用其他按钮也是如此。

var btn1 = document.GetElementById('btn1ID'); 
var btn2 = this; 

btn1.disabled = true; 
btn2.disabled = true; 

如果按钮在命名容器,你需要使用.NET对象的属性称为客户端ID来获取元素的HTML ID。

var btn1 = document.GetElementById('<%= btn1.ClientID %>'); 

我建议将这些包装在一个脚本标记和一个函数中,然后从.NET属性添加中调用该函数。

代码隐藏

btn2.Attributes.Add("onclick", "handleClick();") 

ASPX

<script type="text/javascript"> 
    function handleClick() { 
     var btn1 = document.GetElementById('<%= btn1.ClientID %>'); 
     var btn2 = this; 

     btn1.disabled = true; 
     btn2.disabled = true; 

    } 
</script> 

<asp:Button id="btn1" runat="server" text="Button 1" /> 
<asp:Button id="btn2" runat="server" text="Button 2" />