禁用然后重新启用点击功能jQuery
Disable then re-enable click function jQuery
我有一个文件上传系统,点击上传按钮后,文件通过AJAX上传。上传文件时,我想禁用"选择图像"按钮上的点击功能。目前,这是文件选择按钮上的点击功能:
$(document).ready(function() {
$("#file-button").click(function() {
$('#file').trigger('click');
});
});
这很好,但我想在XmlHttpRequest的进度阶段禁用单击功能,然后在从服务器收到200响应时重新启用单击功能。我尝试过bind()
和unbind()
,它在Chrome中运行良好,但在firefox中,在上传过程中,按钮无法点击,这正是我想要的,然后在我从服务器得到响应后,按钮被重新启用,但在firefox中同时打开了两个文件选择对话框窗口。这是因为上面的函数,我再次使用bind()
绑定函数。有人对如何在不重新输入点击事件的代码(功能)的情况下启用然后禁用按钮有什么建议吗。
像这样的东西会更可取:
$('#file-button').disable();
$('#file-button').enable();
我试过on()
和off()
,但它们似乎也不起作用。
解决方案——感谢Eric
我将最初的点击功能更改为:
$(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$.prp()函数禁用按钮:
$("input[type=submit]").prop('disabled', true);
在点击处理程序中添加一个条件,以检查按钮是否被禁用:
$("#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');
测试代码
<script type="text/javascript" src="js/jquery.js"></script>
<script type="text/javascript">
$(document).ready(function()
{
$("#file-button").click(function(e)
{
e.preventDefault();
$(this).attr('disabled','disabled');
return false;
});
});
</script>
<input type="button" id="file-button" value="ClickMe" />
您必须参考输入按钮才能禁用按钮,
低于
$("input[type=submit]").prob('disabled', true);
$("inpur[type=submit]").prob('disabled', false);
相关文章:
- 如何将chrome扩展功能移植到移动设备(特别是jquery和trello)
- jQuery滚动功能只工作一次
- JQuery使用相同的功能自动完成各种输入文本
- jQuery自动完成功能不适用于多个文本输入
- 这个jquery语法的功能是什么
- 如何使用javascript/jquery更改转义键的功能
- 使用Jquery创建一个具有单击和悬停功能的菜单
- 屏幕大小调整功能-Jquery
- 使用复杂数组时Jquery自动完成功能不起作用
- jQuery点击操作被排序功能剥离
- Angular JS和jQuery UI自动完成功能
- 检查jquery(或ajax)功能是否已完成
- 计时器在使用 jQuery 一分钟后没有触发,或者每 1 分钟后给出一些其他解决方案来触发功能
- 必须单击按钮两次才能执行功能 - jQuery
- 可以't在我的HTML表中显示第三列(向下搜索功能jQuery/JavaScript)
- 传递点击事件到功能- JQuery切换无序列表中的孩子
- 淡入淡出功能Jquery
- 禁用然后重新启用点击功能jQuery
- 更改按钮功能jQuery
- 试图添加更多的jQuery到我的页面,但当我添加更多的链接/脚本标签,以前的功能jQuery停止运行.有人能帮帮我吗?