禁用双击可在Firefox上运行,但在Chrome上无效

时间:2015-03-12 16:01:36

标签: jquery html asp.net forms button

我需要防止在发布表单时双击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>

更新II

下面是我最终使用的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"

这阻止了在不同浏览器中正确评估客户端代码。

3 个答案:

答案 0 :(得分:0)

您可以尝试.attr()而不是.prop()

答案 1 :(得分:0)

如果输入有一个type="button",它将不会触发提交功能(甚至在FF上,或者至少我无法获得它),正如你在这个小提琴上看到的那样:{{3} }(用空函数替换目标以避免错误)

如果您将输入更改为type="submit",则会触发提交功能并禁用该按钮。你可以在另一个小提琴上看到它:http://jsfiddle.net/4ye9921e/

因此,只需将输入更改为submit,然后触发onsubmit事件。

答案 2 :(得分:0)

这适用于我的情况。 __doPostBack($(this).attr('name'),'')需要Chrome。

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

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