You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何移除MudBlazor单选按钮的键盘导航功能

移除MudBlazor单选按钮的键盘导航影响

要完全移除按键对MudBlazor单选按钮值的影响,你可以通过以下两种方式解决:

方法一:使用事件修饰符阻止默认键盘行为

直接给每个MudRadio添加@onkeydown:preventDefault修饰符,强制阻止浏览器和MudBlazor内部的默认键盘导航逻辑:

<MudRadioGroup T="string" @bind-Value="selectedValue">
    <MudRadio Value="Option1" @onkeydown:preventDefault>选项1</MudRadio>
    <MudRadio Value="Option2" @onkeydown:preventDefault>选项2</MudRadio>
</MudRadioGroup>

@code {
    private string selectedValue = "Option1";
}

方法二:自定义单选按钮组件覆盖键盘处理

如果方法一无效,说明组件内部的键盘事件优先级更高,此时可以继承MudRadio并重写其键盘处理方法,完全跳过默认逻辑:

public class CustomMudRadio<T> : MudRadio<T>
{
    protected override Task OnKeyDownAsync(KeyboardEventArgs e)
    {
        // 不执行基类的键盘导航逻辑,直接返回完成任务
        return Task.CompletedTask;
    }
}

在页面中使用自定义组件:

<MudRadioGroup T="string" @bind-Value="selectedValue">
    <CustomMudRadio Value="Option1">选项1</CustomMudRadio>
    <CustomMudRadio Value="Option2">选项2</CustomMudRadio>
</MudRadioGroup>

@code {
    private string selectedValue = "Option1";
}

补充说明

你之前尝试的@onkeydown事件无效,是因为MudBlazor的MudRadio组件内部已经注册了键盘事件处理逻辑,并且这些内部事件会优先于你添加的外部事件执行,导致你的事件被覆盖。上述两种方法分别通过强制阻止默认行为、重写组件核心逻辑来绕过这个问题。

内容的提问来源于stack exchange,提问作者David

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.17 02:29:54