0

リンクボタンを無効にしようとしていますが、うまくいきません! 考えられるすべての解決策を試しましたが、ユーザーがそのリンク ボタンをクリックするのを制限することはできません。エンド ユーザーがリンク ボタンを複数回クリックできないようにする必要があります。ワンクリックで完了です!ボタンはすぐに行かなければなりません!どうすればこれを達成できますか?私のボタンは ModalPopupExtender にあり、それは[支払いを行う] ボタンであるため、ユーザーがそのボタンをクリックして複数の支払いを行うイメージ :( 助けてください!

私の解決策はこれに似ていました:

function returnFalse() {
     return false;
}

function disableLinkButton(clientID) {
     document.getElementById(clientID).disabled = "disabled";
     document.getElementById(clientID).onclick = returnFalse;
}
4

6 に答える 6

2

私は自分の解決策をそこに捨てると思った:

$('a.btn').click(function() {
    var self = $(this);
    setTimeout(function() { self.attr('href', 'javascript:void(0);'); }, 10);
    return true;
});

これは IE10 では問題なく機能しましたが、古いバージョンでも機能しない理由がわかりません。

非同期ポストバックを使用していて、UpdatePanel にもユーザーがクリックしたくないボタンが含まれている場合、jQuery の「ライブ」機能が機能しないことを確認する私のソリューションを以下に示します。

$(function() {
    function bindButtonDisabler() {
        $('a.btn').click(function() {
            var self = $(this);
            setTimeout(function() { self.attr('href', 'javascript:void(0);'); }, 10);
            return true;
        });
    }

    bindButtonDisabler(); // Initial bind on DOM ready.

    $(window).load(function() { // Ensure re-bind after postback (optional)
        Sys.WebForms.PageRequestManager.getInstance().add_endRequest(bindButtonDisabler);
    });
});

誰かがそれが役に立つことを願っています:)

于 2013-04-10T05:19:20.147 に答える
0

あなたはこのようにこれを行うことができます:

function disableLink(id) {
   document.all[id].removeAttribute('href');
}​

HTML:

<a id='link1' href="javascript:disableLink('link1');">Click me</a>

(または)これを試してください:

 document.getElementById("#<%=LinkButton.ClientID%>").attr("disabled", true);
于 2012-04-24T11:06:49.107 に答える
0

このようなものが欲しい。

  document.getElementById(clientID).setAttribute("disabled", "true");
于 2012-04-24T11:11:54.320 に答える
0

false を返すとうまくいくはずです。これを試して:

function disableLinkButton(clientID) {
 document.getElementById(clientID).disabled = "disabled";
 document.getElementById(clientID).onclick = return returnFalse;
}  
于 2012-04-24T11:08:12.853 に答える
0

アイデアを得るために、次のようなことを試すことができます。

document.getElementById(clientID).onclick = function() {
   /* process payment */
   this.onclick = function(){};
}
于 2012-04-24T11:08:18.047 に答える
0

リンクが無効になっていることを示したかったので、 @shousper のコードを少し変更しました。

$('a.btn').click(function() {
    var self = $(this);
    setTimeout(function() { self.fadeTo("fast", .5).removeAttr("href"); }, 1);
    return true;
});;

これを使用して、クレジット カード フォームでの複数回のクリックを防止しましたが、問題なく動作しました。

于 2014-07-03T15:29:37.487 に答える