Por que meu formulário não é postado quando desativo o botão enviar para impedir o clique duplo?

Como todos os outros desenvolvedores da web do planeta, tenho um problema com os usuários clicando duas vezes no botão enviar nos meus formulários. Entendo que a maneira convencional de lidar com esse problema é desabilitar o botão imediatamente após o primeiro clique. No entanto, quando faço isso,não publica.

Eu fiz algumas pesquisas sobre isso, Deus sabe que há informações suficientes, mas outras perguntas comoDesativar botão no envio do formuláriodesativar o botão parece funcionar. O pôster original deDesativar botão após enviar parece ter tido o mesmo problema que eu, mas não há menção sobre como / se ele resolveu o problema.

Aqui está um código sobre como repeti-lo (testado no IE8 Beta2, mas teve o mesmo problema no IE7)

Meu código aspx

<%@ Page Language="C#" CodeFile="Default.aspx.cs" Inherits="_Default" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<script language="javascript" type="text/javascript">
    function btn_onClick()
    {
        var chk = document.getElementById("chk");
        if(chk.checked)
        {
            var btn = document.getElementById("btn");
            btn.disabled = true;
        }
    }
</script>
<body>
    <form id="form1" runat="server">
        <asp:Literal ID="lit" Text="--:--:--" runat="server" />
        <br />
        <asp:Button ID="btn" Text="Submit" runat="server" />
        <br />
        <input type="checkbox" id="chk" />Disable button on first click
    </form>
</body>
</html>

Meu código cs

using System;

public partial class _Default : System.Web.UI.Page 
{
    protected override void OnInit(EventArgs e)
    {
        base.OnInit(e);
        btn.Click += new EventHandler(btn_Click);
        btn.OnClientClick = "btn_onClick();";
    }

    void btn_Click(object sender, EventArgs e)
    {
        lit.Text = DateTime.Now.ToString("HH:mm:ss");
    }
}

Observe que quando você clica no botão, ocorre uma postagem e a hora é atualizada. Mas quando você marca a caixa de seleção, na próxima vez em que clicar no botão, o botão será desativado (conforme o esperado), mas nunca a postagem será feita.

QUE diabos estou perdendo aqui ???

Desde já, obrigado.

questionAnswers(10)

yourAnswerToTheQuestion