Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 以编程方式将焦点设置为禁用按钮不工作_Jquery_Html_Button - Fatal编程技术网

Jquery 以编程方式将焦点设置为禁用按钮不工作

Jquery 以编程方式将焦点设置为禁用按钮不工作,jquery,html,button,Jquery,Html,Button,$(函数(){ $(“#保存”)。单击(函数(){ $('#save').attr('disabled','disabled'); log($(document.activeElement.attr('id')); }); $(“#测试”).focus(); log($(document.activeElement.attr('id')); }); 按钮:焦点{ 大纲:1px虚线#000000; } 丢弃 拯救 否,该按钮无法接收焦点,因为它已被禁用。根据HTML5版本,禁用的表单控件必须防止

$(函数(){
$(“#保存”)。单击(函数(){
$('#save').attr('disabled','disabled');
log($(document.activeElement.attr('id'));
});
$(“#测试”).focus();
log($(document.activeElement.attr('id'));
});
按钮:焦点{
大纲:1px虚线#000000;
}

丢弃
拯救

否,该按钮无法接收焦点,因为它已被禁用。根据HTML5版本,禁用的表单控件必须防止点击事件和其他交互

您需要做的是在某个点启用控件并以这种方式分配焦点。另一个建议是保持按钮处于启用状态,并实施某种形式的检测,以确定是否响应丢弃按钮的
单击事件


另外,(我在这里猜测)保存按钮可能显示为活动,因为它在被禁用之前是活动的。尽管浏览器需要阻止通过交互访问禁用的项目,但删除焦点(或本例中的
document.activeElement
)可能不是规范的实现要求。

很抱歉,迟到了,但您可以使用
aria disabled
属性,而不是
disabled
,您的元素将能够被分配焦点(即使在IE和mobile中,这个问题通常不会在Chrome或Edge中出现)


作为旁注,如果您还希望您的元素可以通过键盘选项卡进行导航,当然要确保设置
tabindex=“0”
(但是,通过JavaScript以编程方式分配焦点时不需要这样做)。

aria disabled将允许对禁用的元素使用focus()

disabled特别意味着无法与之交互,增加焦点需要互动。我认为你最好改变工作流,而不是围绕它编码。焦点与其说是一种互动,不如说是指示用户在页面上的位置,我们的目标是将焦点放在一个合乎逻辑的位置,特别是对于屏幕阅读器用户。这与:您可以使用
aria disabled
属性而不是
disabled
,并且您的元素将能够被分配焦点有什么不同?这个答案已经陈述并得到了很好的解释。