我在表单上点击一个JQuery UI提交按钮,既可以防止双击,又可以清楚地表明它实际上已被点击了。
所以我使用jQuery来做到这一点:
$('input:submit').click(function() {
$(this).button('disable');
});
可行,但问题是当用户点击其后退按钮时 仍然被禁用 。单击时禁用提交按钮的正确方法是什么?我显然使用jQuery,所以首选使用jQuery。
更新 :很多人建议我使用$(document).ready(function() {$('input:submit').button('enable');});
来克服按钮的持续禁用。事实证明,如果它出现在$(function() {}
中的按钮初始化调用之前,则无效。但是,如果我在按钮初始化代码之后放置该按钮('enable'),即使在$(function() {})
部分,它也会按预期工作。
但现在我意识到整个按钮禁用仅适用于Firefox! 如果我停用该按钮,表单将不会在IE和Chrome中提交 (尚未测试其他人)!
更新2 :我终于让这个工作了,虽然有点担心一些浏览器无法用这些变通方法提交东西...这是我的最终的代码,很想听听潜在问题的意见:
$(function() {
$('input:submit').button().click(function() {
$(this).button('disable');
$(this).closest('form').submit();
return false;
});
$('input:submit').button('enable');
});
答案 0 :(得分:2)
$(document).ready(function(){
$("input:submit").attr("disabled", "");
})
答案 1 :(得分:0)
将此添加到页面。
$(document).ready(function() {
$('input:submit').button({ disabled: false});
});
答案 2 :(得分:0)
嗯,它一直处于禁用状态,因为浏览器最好保存历史记录中的表单状态。所以我建议附加到load事件并删除disabled属性。
答案 3 :(得分:0)
我无法在jQuery API文档中找到对button
方法的任何引用。你在使用某种模块吗?
回击应该将表单重置为它的初始状态,所以我想必须使用button
方法进行一些会话魔术。请尝试以下方法:
$('input:submit').click(function() {
$(this).attr('disabled', 'disabled');
});
答案 4 :(得分:0)
正如其他人所提到的,当您单击后退按钮时,表单会保留(部分)其状态,因此您需要在加载页面时启用提交按钮(当有人单击后退按钮时也会发生这种情况)。
将此添加到您的页面:
$(document).ready(function(){
$("input:submit").button("enable");
});
请注意,此解决方案使用jQuery UI button.enable()
方法,该方法与您使用的button.disable()
方法相反。