首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >禁用双击在Firefox上工作,但在Chrome上不工作

禁用双击在Firefox上工作,但在Chrome上不工作
EN

Stack Overflow用户
提问于 2015-03-12 16:01:35
回答 3查看 689关注 0票数 0

我需要防止双击在一个asp.net按钮,当表单是张贴。

我尝试了以下jQuery代码:

代码语言:javascript
复制
        $(this).submit(function () {
            $('.btn').prop("disabled", "disabled");
        });

它在Firefox浏览器中工作,但在Chrome中不起作用。

下面是我的asp.net按钮的HTML:

代码语言:javascript
复制
<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>

是否有一个简单的方法,我可以使用,这将是普遍的?

非常感谢你的帮助。

更新I

我包括.aspx html,以及现在似乎适合我的JavaScript。

代码语言: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:

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

更新II

下面是我最后使用的jQuery代码。到目前为止,我认为这是可行的。

代码语言:javascript
复制
        /** 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按钮的属性为:

代码语言:javascript
复制
UseSubmitBehavior="false"

这使得客户端代码无法在不同的浏览器上得到正确的评估。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-03-12 18:57:34

如果输入有一个type="button",它将不会触发提交函数(即使在FF上也不会,或者至少我无法得到它),就像您在这个小提琴上看到的:http://jsfiddle.net/4ye9921e/ (用一个空函数替换目标以避免错误)。

如果您将输入更改为有type="submit",那么提交函数将被触发,按钮将被禁用。你可以在另一个小提琴上看到它:http://jsfiddle.net/4ye9921e/1/

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

票数 0
EN

Stack Overflow用户

发布于 2015-03-12 16:12:31

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

票数 0
EN

Stack Overflow用户

发布于 2016-04-19 08:06:36

这是我的案子。__doPostBack( $(this).attr('name'),'')需要Chrome。

代码语言:javascript
复制
 <asp:Button ID="Btn_AjouterFichier" runat="server" Text="Ajouter photo" CssClass="singleclick" />

$('.singleclick').click(function () {
        $(this).attr('disabled', 'disabled');
        __doPostBack( $(this).attr('name'), '')
});
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29014606

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档