Jquery 单击后禁用HTML按钮以防止双击
我想防止双击,因此在单击事件时在Jquery 单击后禁用HTML按钮以防止双击,jquery,html,form-submit,double-submit-prevention,Jquery,Html,Form Submit,Double Submit Prevention,我想防止双击,因此在单击事件时在input元素上设置disabled属性似乎是正确的做法。其他答案也反映了这一点。这就是我用jQuery在CoffeeScript中写的: $('input[type="submit"]').on('click', -> $(this).addClass('disabled').attr('disabled', 'disabled') $(this).val('Sending') ) 我有 AddioType(“禁用”)< /Case>为基金会。
input
元素上设置disabled
属性似乎是正确的做法。其他答案也反映了这一点。这就是我用jQuery在CoffeeScript中写的:
$('input[type="submit"]').on('click', ->
$(this).addClass('disabled').attr('disabled', 'disabled')
$(this).val('Sending')
)
我有<代码> AddioType(“禁用”)< /Case>为基金会。
一般来说,这是有效的。但是,如果单击“上一步”,该按钮仍处于禁用状态。如果我转到页面并且页面已缓存,则按钮仍处于禁用状态。是否有一个JavaScript库可以处理所有这些小问题?似乎这是一个非常普遍的需求。我需要在上面添加多一点JavaScript/jQuery吗 我本以为HTML5现在已经有了某种机制 更新:我试图监听页面显示
事件并取消禁用提交按钮:
$('input[type="submit"]').on('pageshow', function() {
console.log('pageshowed')
$(this).removeClass('disabled').removeAttr('disabled').val('Submit');
});
但是什么也没有发生,即使在第一次加载页面时也不会发生。我是否使用了pageshow
错误?使用窗口上的对象。适用于Chrome和Safari以及Firefox,但不确定IE是否适用于Opera 12(但将适用于Opera 15,因为与Chrome相同的引擎)。请在控制台中尝试typeof window.onpageshow
进行检测。我使用以下方法:
$(document).ready(function() {
$('.auto-submit-disable')
.submit(function () {
$(this).find('button,input[type=submit]')
.attr('disabled', 'true');
});
});
if ($('.auto-submit-disable'))
window.onunload = function(){}; // This forces re-execution of js
之后,只需在表单上添加class=“auto submit disable”
。请注意,该方法对于浏览器来说非常繁重,因为在返回导航时重复所有JS非常繁重
因此,不建议将其作为在所有页面上运行的通用方法 也许,您可以使用快速而肮脏的解决方法:启用文档上的按钮。准备好了吗?@IvanKolmycheck-这不起作用<代码>$(文档)。ready
在缓存页面或返回浏览器时不会重新执行其处理程序。感谢您的解释,这只是胡乱猜测。然后试试@robertc-我会试试,但pageshow似乎只适用于Firefox?您不能仍然提交没有按钮的表单吗?例如,通过按enter键?不,大多数浏览器在没有活动提交输入时不接受。