Javascript 单击禁用的输入或按钮
是否可以单击禁用的按钮并向用户提供一些反馈 HTML: 以上代码不适用于我;这也不是:Javascript 单击禁用的输入或按钮,javascript,jquery,disabled-control,Javascript,Jquery,Disabled Control,是否可以单击禁用的按钮并向用户提供一些反馈 HTML: 以上代码不适用于我;这也不是: $('input').live('click', function () { alert('CLICKED'); }); 禁用元素将不允许用户与它们交互 因此:不,您不能在禁用的按钮上单击一个按钮,然后期望它启动。如果没有解决方法,您就不能,请参见: 浏览器禁用禁用元素上的事件 编辑以从链接添加上下文: 询问者发现此线程并解释了事件未注册的原因: Firefox,也许还有其他浏览器,在表单字段上禁用
$('input').live('click', function () {
alert('CLICKED');
});
禁用
元素将不允许用户与它们交互
因此:不,您不能在禁用的按钮上单击一个
按钮,然后期望它启动。如果没有解决方法,您就不能,请参见:
浏览器禁用禁用元素上的事件
编辑以从链接添加上下文:
询问者发现此线程并解释了事件未注册的原因:
Firefox,也许还有其他浏览器,在表单字段上禁用DOM事件
那些是残疾的。从“已禁用表单”字段开始的任何事件都是
完全取消,不会向上传播DOM树。纠正我
如果我错了,但是如果你点击了禁用按钮,那么
事件为禁用按钮,单击事件完全禁用
精疲力尽的浏览器根本不知道按钮被点击,
它也不会传递单击事件。这就好像你在点击一个
网页上的黑洞
解决方法是将按钮样式设置为“look”disabled,而实际上并非如此。您应该使用disabled=“disabled”,而不仅仅是disabled
$('input:disabled').val('disabled');
无法捕获对禁用元素的单击。最好是对元素上的特定类作出反应
HTML标记:
<input type="button" class="disabled" value="click" />
然后,您可以使用CSS样式来模拟禁用的外观:
.disabled
{
background-color: #DDD;
color: #999;
}
下面是一个演示其用法的示例。将字段设置为只读可以有所帮助,因为单击事件将被触发。尽管要知道这一点
上面的示例与JQuery一起使用,用于需要捕获事件的禁用按钮。Put
input[disabled] {pointer-events:none}
在CSS中(它防止某些浏览器完全放弃对禁用输入的单击),并捕获对父元素的单击。IMHO,这是一个更干净的解决方案,比在元素上放置一个透明的覆盖层来捕获点击更干净,而且根据具体情况,这可能比简单地使用CSS“模拟”禁用状态要容易得多(因为这不会阻止提交输入,还需要覆盖默认的浏览器“禁用”样式)
如果您有多个这样的按钮,则需要每个按钮都有一个唯一的父级,以便能够区分单击了哪个按钮,因为对于指针事件:none
,单击目标是按钮的父级,而不是按钮本身。(或者你可以测试点击坐标,我想…)
但是,如果您需要支持较旧的浏览器,请检查哪些浏览器支持指针事件。
:您不能单击禁用按钮,但可以单击禁用链接
$('.btn')。在('click',函数(e)上{
e、 预防默认值();
$txt=$('div.text');
if($(this.attr('disabled')){
$txt.html('已单击,但已禁用!!');
}否则{
$txt.html('notdisabled.=');
}
});代码>
不采取行动
将按钮包装在某个元素中,然后点击该元素,怎么样
<span id="container">
<input type="button" value="click" disabled>
</span>
我不认为单击事件会在禁用的控件上触发所有事件都会为禁用的控件删除因此您禁用它您不能使用disabled=“disabled”单击任何元素-这就是禁用它的意义。在FF中对我有效-最简单和最兼容的答案应该是可接受的答案,可以在chrome tooworks上使用,在禁用按钮周围有一个div。你认为这是怎么回事?是因为身份证吗?还是因为它是一个按钮?还是价值?这至少在文本输入上不起作用。老实说,我不确定,但我怀疑这是JQuery在加载DOM时关联侦听器的顺序,或者在加载DOM时它很可能忽略了disabled属性。我喜欢你的答案,但不幸的是它不起作用。我猜disabled
会阻止事件传播或其他事情
.disabled
{
background-color: #DDD;
color: #999;
}
<input type="button" value="click" readonly="readonly" />
$('#idButton').on('click', function() {
// The button is disabled but this will be executed.
});
input[disabled] {pointer-events:none}
<span id="container">
<input type="button" value="click" disabled>
</span>
$("#container").click(function(){
alert("Element clicked!");
})