禁用表单提交上的2个按钮(ASP.NET)

时间:2008-10-06 16:27:56

标签: asp.net

我有一个按钮的解决方案:

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

对于一个按钮哪个效果非常好,有关如何将其扩展为2个按钮的任何想法?

3 个答案:

答案 0 :(得分:3)

您可以添加一个clientide onSubmit处理程序,或者您可以这样做:

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

答案 1 :(得分:1)

更改javascript以引用其他按钮。

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

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

如果按钮位于命名容器中,则需要使用名为ClientID的.NET对象属性来获取元素的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" />

答案 2 :(得分:0)

将命令更改为:

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