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

Blazor中MudTextField文本变化时实时启用MudButton的问题

解决MudTextField文本变化即时启用MudButton的问题

问题出在MudTextField默认的更新模式上:它默认使用UpdateMode.LostFocus,只有当文本框失去焦点时才会更新绑定值并触发ValueChanged事件,所以按钮只能在点击文本框外部后才启用。

只需给MudTextField添加UpdateMode="UpdateMode.PropertyChanged"属性,就能让文本框在每输入一个字符时立即触发ValueChanged,从而实时更新按钮状态:

<MudTextField Value="Name" 
              HelperText="Enter your name" 
              ValueChanged="@(EventCallback.Factory.Create<string>(this, OnNameChanged))"
              UpdateMode="UpdateMode.PropertyChanged"></MudTextField>
<MudButton Variant="Variant.Filled" Color="Color.Primary" Disabled="(!HasNameChanged)">Save</MudButton>

@code {
    public string Name { get; set; } = "John Smith";

    public bool HasNameChanged {get; set;} = false;


    public void OnNameChanged(string value)
    {
        Name = value;
        HasNameChanged = true;
    }
}

如果需要更精准的判断(比如仅当文本和初始值不同时才启用按钮),可以修改OnNameChanged方法对比新旧值:

private readonly string _initialName = "John Smith";

public void OnNameChanged(string value)
{
    Name = value;
    HasNameChanged = value != _initialName;
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 18:52:02