簡體   English   中英

禁用雙擊在Firefox上有效,但在Chrome上無效

[英]Disabling double click works on Firefox, but does not work on Chrome

發布表單時,我需要防止雙擊asp.net按鈕。

我已經嘗試了以下jQuery代碼:

        $(this).submit(function () {
            $('.btn').prop("disabled", "disabled");
        });

它可以在Firefox瀏覽器中使用,但不能在Chrome中使用。

這是我的asp.net按鈕的HTML:

<form name="aspnetForm" method="post" action="reset-password.aspx" id="aspnetForm">
<div class="orangeBTN">
    <input type="button" name="ctl00$ctl00$content$content$btnSubmit" value="Submit" onclick="javascript:__doPostBack(&#39;ctl00$ctl00$content$content$btnSubmit&#39;,&#39;&#39;)" id="ctl00_ctl00_content_content_btnSubmit" class="btn pri" />
</div>
</form>

有沒有一種我可以通用的簡單方法?

在您的幫助下,非常感謝。

更新我

我包括.aspx html和現在似乎適合我的JavaScript。

<asp:Panel ID="pnlInput" CssClass="pnlInput" runat="server">
    <fieldset id="resetPassRight">
        <asp:Panel ID="pButtons" runat="server" CssClass="buttons">
            <asp:Button ID="btnSubmit" Text="Submit" CssClass="btn pri" runat="server" />
        </asp:Panel>
    </fieldset>
</asp:Panel>

JavaScript:

<script type="text/javascript">
    $(document).ready(function () {
        $('.pnlInput fieldset .btn').one('click', function () {
        $(this).trigger("click");
        $(this).attr('disabled', 'disabled');
        });
    });
</script>

更新二

下面是我最終使用的jQuery代碼。 到目前為止,我認為它可行。

        /** Start - This jQuery will disable double click */
        $('.pnlInput fieldset .btn').one('click', function () {
            $(this).trigger("click");
            $(this).attr("disabled", 'disabled');               
        });
        /** End - This jQuery will disable double click */

jQuery未執行的原因之一是asp按鈕具有以下屬性:

UseSubmitBehavior="false"

這阻止了客戶端代碼在不同瀏覽器中的正確評估。

您可以嘗試使用.attr()而不是.prop()

如果輸入具有type="button" ,它將不會觸發提交功能(甚至在FF上也不會,或者至少我無法獲得它),如您在此提琴上所看到的: http : //jsfiddle.net / 4ye9921e / (用空函數替換了目標以避免錯誤)

如果將輸入更改為type="submit" ,那么將觸發Submit函數,並且該按鈕將被禁用。 您可以在其他小提琴上看到它: http : //jsfiddle.net/4ye9921e/1/

所以,僅僅改變輸入到submit ,然后onsubmit事件將被觸發。

就我而言,這是可行的。 Chrome需要__doPostBack($(this).attr('name'),'')。

 <asp:Button ID="Btn_AjouterFichier" runat="server" Text="Ajouter photo" CssClass="singleclick" />

$('.singleclick').click(function () {
        $(this).attr('disabled', 'disabled');
        __doPostBack( $(this).attr('name'), '')
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM