重复单击时asp.net按钮不会导致回发

标签 asp.net button click postback

如果我在页面加载后非常快地单击按钮,则不会触发回发。以下示例说明了这一点(您必须非常快地单击按钮两次):

<form id="form1" runat="server">
    <div>
        <span id="submitText"></span>
        <br />
        <asp:Button ID="btnSubmitTest" runat="server" Text="Button" 
        OnClientClick="document.getElementById('submitText').innerText='you should not see this after postback';"  />
    </div>
</form>

submitText(触发前设置的按钮)在回发后不应可见。但是,如果您非常快地单击按钮,则事件不会触发。

我认为,此时页面尚未完全加载。或者这种行为还有其他原因吗?你如何处理这个问题?

最佳答案

您将在回发时丢失所有 javascript dom 更新。您所解释的听起来是正确的...您会在页面回发并重置 dom 之前看到客户端单击事件触发

通过填充文本框尝试相同的练习。在这种情况下,该值将保持不变,因为文本框依赖于 View 状态。您可以在跨度上放置 runat="server",但我相信您必须手动将值分配给 viewstate,因为我不相信 htmlgenericcontrols 会自动利用 viewstate。

关于重复单击时asp.net按钮不会导致回发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6580534/

相关文章:

c# - WebAPI2 Json.Net 必需属性未正确添加 ModelState 错误

jquery - 奇怪的 jQuery ("checkbox").click().is (":checked") 行为

javascript - 脚本引用名称错误

python - 按下按钮时的wxpython刷新窗口

android - 如何在android中所有按钮的FocusChange上调用特定功能?

html - 如何使 ionic 网格像 Ionic 2 中的按钮一样可点击

javascript - jQuery 代码被忽略

javascript - 按钮会改变颜色,即使它已经被分配

asp.net - 在 Web Gardens 中添加动态路由

asp.net - sql server 2008 用户登录失败 'NT AUTHORITY\NETWORK SERVICE'