Javascript 跳过对焦或激活禁用的按钮(带角度)
当我按tab键在屏幕上的控件之间导航时(对于角度应用程序),当使用此角度机制有条件地禁用控件时,它在选项卡序列中包括禁用的控件:Javascript 跳过对焦或激活禁用的按钮(带角度),javascript,angular,button,disabled-control,stenciljs,Javascript,Angular,Button,Disabled Control,Stenciljs,当我按tab键在屏幕上的控件之间导航时(对于角度应用程序),当使用此角度机制有条件地禁用控件时,它在选项卡序列中包括禁用的控件: <button [disabled]="!this.myForm.valid"> 问题是,如果我还包括一个click事件处理程序 <button (click)="saveForm()" [disabled]="!this.myForm.valid"> …虽然确实不能用鼠标单击来激活单击处理程序,但可以通过按return(回车)来激
<button [disabled]="!this.myForm.valid">
问题是,如果我还包括一个click事件处理程序
<button (click)="saveForm()" [disabled]="!this.myForm.valid">
…虽然确实不能用鼠标单击来激活单击处理程序,但可以通过按return(回车)来激活它
这是一个糟糕的用户体验;当按钮被如图所示的表达式禁用时,我希望它(a)完全不可聚焦或(b)能够忽略按enter键。有什么建议吗
(也许我的代码库中有什么东西加剧了这一点,但对我来说,上面看起来像是默认的角度行为。你能在StackBlitz中重现它吗?当它被禁用时,我不能用tab键锁定按钮,因此我可以使用return键激活它。你说的是禁用的控件或禁用按钮?在saveForm()中),您可以检查此.myForm.valid,如果它无效,只需结束该函数。@user184994感谢stackblitz。您准确地实现了我所描述的内容,因此我开始寻找在我的情况下独特的内容(可能是我对代码库中某些内容的注释)…所讨论的元素实际上不是标准的HTML元素(我使用的)但我代码中真正的组件是使用stencil web组件编译器(stenciljs.com)创建的元素。这可能是这里的问题。(我刚才也在问题中添加了该标记。)–如果尝试
禁用aria
,会发生什么?