0

私のWinformアプリケーションでは、ClickSuppressorを使用して、ボタンを2回以上押すことで複数のアクションを実行できるようにしました。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

これは、ブラウザでスクリプトを使用して行う必要があります。

要素がクリックされたときに、要素の disabled 属性を「disabled」に設定します。

<button class="singleClick">

jQuery:

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

無効化されたステータスは、後で次の方法で削除できます。

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