禁用然后重新启用click function jQuery
我有一个文件上传系统,点击上传按钮后,文件将通过AJAX上传。 上传文件时,我想禁用“选择图像”按钮上的单击function。 目前这是文件选择按钮上的单击function:
$(document).ready(function() { $("#file-button").click(function() { $('#file').trigger('click'); }); });
这工作正常,但我想在XmlHttpRequest的进度阶段禁用click函数,然后当我从服务器得到200响应时重新启用click函数。 我已经尝试过bind()
和unbind()
,它在Chrome中工作正常,但在firefox中,在上传过程中,无法点击按钮,这就是我想要的,然后在我从服务器得到响应之后按钮是重新启用,但在firefox中两个文件选择对话窗口同时打开。 这是因为上面的函数,我使用bind()
再次bind()
函数。 有没有人对如何启用有任何建议,然后禁用该按钮而不重新输入click事件的代码(function)。
这样的事情会更好:
$('#file-button').disable(); $('#file-button').enable();
我已经尝试过on()
和off()
,但它们似乎也没有用。
解决方案 – 感谢Eric
我将初始点击function更改为以下内容:
$(document).ready(function() { $("#file-button").click(function() { if ( $('#file-button').attr('disabled') == "disabled" ) { return false; } else { $('#file').trigger('click'); } }); });
我设置以下内容以禁用该按钮
$('#file-button').attr('disabled','disabled');
这要重新启用它:
$('#file-button').removeAttr('disabled');
使用jQuery $ .prop()函数禁用该按钮:
$("input[type=submit]").prop('disabled', true);
向click处理程序添加条件以检查按钮是否已禁用:
$("#file-button").click(function() { if (!$(this).is(':disabled')) { $('#file').trigger('click'); } });
稍后重新启用按钮:
$("input[type=submit]").prop('disabled', false);
或者,如果涉及表单,您可以使用提交事件而不是单击:
$("#whatever-your-form-is").on('submit', function() { $('#file').trigger('click'); });
尝试Attr
jQuery函数。
$('#file-button').attr('disabled','disabled'); $('#file-button').removeAttr('disabled');
经过测试的代码
您必须参考输入按钮才能禁用按钮,
像下面的东西
$("input[type=submit]").prob('disabled', true); $("inpur[type=submit]").prob('disabled', false);