如何防止用户多次点击按钮?

时间:2014-04-02 06:44:43

标签: javascript jquery asp.net c#-4.0

我试图阻止用户多次点击提交按钮。为了类似的问题,我尝试了很多关于SO的事情。

例如:

<script type="text/javascript" src="http://code.jquery.com/jquery-1.11.0.min.js">
    $('<% =btnUpload.ClientID %>').click(function () { this.disabled = true });
</script>

我也试过..

<script type="text/javascript" src="http://code.jquery.com/jquery-1.11.0.min.js">
  $("form").submit(function() {
    $(this).submit(function() {
        return false;
    });
    return true;
  });
</script>

并在主页上尝试过...

<form onsubmit="if(submitted) return false; submitted = true; return true">

但是没用 我仍然可以不止一次点击按钮。

标记

<asp:Button ID="btnUpload" runat="server" class="blue-button" 
CssClass="ButtonText"OnClick="btnUpload_Click"
 OnClientClick="if (!confirm('Are you sure that you want to Save entered details ?'))
 return false;return doCustomValidate(event,true);"
     Text="Save" />

另请注意,我正在使用母版页

4 个答案:

答案 0 :(得分:2)

为其添加已禁用的属性。

$('#<% =btnUpload.ClientID %>').click(function () {
    $(this).prop("disabled", true);
});

答案 1 :(得分:1)

#之前的id错过了<% =btnUpload.ClientID %>$(function(){ $('#<% =btnUpload.ClientID %>').click(function () { this.disabled = true; }); }); 之前,

$(function(){
    $('#<% =btnUpload.ClientID %>').one('click',function () {
        // your code on click event
    });
});

如果您只想添加点击事件一次,请使用one()之类的,

id

如果您的Clientid changes更改(renderclass selector),请尝试使用$(function(){ $('.ButtonText').click(function () { this.disabled = true; }); });

{{1}}

答案 2 :(得分:1)

如果您希望用户只需点击一次按钮,请使用.one()附加活动。

jquery url:http://api.jquery.com/one/

答案 3 :(得分:1)

在javascript中设置一个count变量。将其值初始化为0。在.click()事件侦听器中检查条件。 If 0,允许执行代码并按1增加计数。 Else,返回false。

var count = 0;
$('#<% =btnUpload.ClientID %>').click(function () {
    if (count == 0) {
        count++;
        return true;
    } else {
        return false;
    }
});