0

对于我的 Winform 应用程序,我使用了 ClickSuppressor,以便通过按下按钮两次或更多次来执行多个操作。我想知道 WebForms 和 MVC 应用程序呢?我们是否还需要在此类项目中使用ClickSuppressor ?

using (new MyClass.ClickSuppressor(this))
{
    try
    { 
        //my action code i.e. add record
    }
}


我的课:

/// <summary>
/// Stops to queue event in order to prevent from "multiple click" when adding a new record.
/// </summary>
internal class ClickSuppressor : IDisposable
{
    private Control mCtrl;
    public ClickSuppressor(Control ctrl)
    {
        mCtrl = ctrl;
        mCtrl.Enabled = false;
        mCtrl.Update();
    }
    public void Dispose()
    {
        Application.DoEvents();
        /* Or this:
        MethodInfo mi = typeof(Control).GetMethod("RemovePendingMessages", BindingFlags.Instance | BindingFlags.NonPublic);
        mi.Invoke(mCtrl, new object[] { 0x201, 0x203 });
        mi.Invoke(mCtrl.Parent, new object[] { 0x201, 0x203 });
        */
        if (!mCtrl.IsDisposed) mCtrl.Enabled = true;
    }
}
4

1 回答 1

1

这需要在浏览器中使用脚本来完成。

单击时将元素的禁用属性设置为“禁用”:

<button class="singleClick">

jQuery:

$(".singleClick").on("click", function(){
    this.attr("disabled", "disabled");
});

您可以稍后通过以下方式删除禁用状态:

$(element).removeAttr("disabled");
于 2013-11-12T10:59:16.857 回答