【发布时间】:2014-03-26 14:22:02
【问题描述】:
我已经尝试了以下两个脚本来防止用户多次提交以下表单。在这两种情况下,提交按钮都被禁用,但是没有发送表单(放置了一个断点并且没有调用 OnClick 方法)
按钮:
<asp:Button ID="BtnSubmit" runat="server" Text="Submit" onclick="BtnSubmit_Click" />
脚本:
<script type="text/javascript"> $("#BtnSubmit").click(function () {
var button = $(this);
button.prop('disabled', true);
setTimeout(function () {
button.prop('disabled', false);
}, 5000);
});</script>
和
$('form').on('submit', function (e) {
$('[type="submit"]').prop('disabled','disabled');
});
【问题讨论】:
-
OnClick方法可能没有被调用,因为特定按钮被禁用,并且提交表单的默认行为是在有效负载中不包含任何禁用的输入(因此 ASP.NET 可以'不知道按钮被点击了)。我的一个快速想法是将按钮的type更改为“按钮”(而不是“提交”),而不是禁用它。这样,如果再次点击至少不会提交表单 -
@Ian 该链接实际上运行良好。谢谢你。发布为答案,我会接受它
标签: javascript asp.net submit