如何向 inputRadio 添加 on change 事件?

How to add an on change event to an inputRadio?

有人知道如何向 inputRadio 添加 on change 事件吗?

我知道你可以做到以下几点

<input type="radio" @onchange="ChangeFunction"/>

这将达到 ChangeFunction() 但是如果我执行以下操作

<InputRadioGroup @bind-Value="@i.LeaveRequest.DayTime">
    <label>Full Day</label>
    <InputRadio Value="@FullDay" class="checkbox-P" @onchange="ChangeFunction"/>
</InputRadioGroup>

它永远不会命中函数。

我也试过将 @onchange="ChangeFunction" 添加到 InputRadioGroup 行,但似乎都没有实现该功能。

有人知道怎么做吗?

您可以创建普通的单选按钮:

@foreach (var item in new string[] {"AspNetCore","AspNet","SomeJsThingWhatever"})
 {
  <div>
      <input type="radio" name="technology" id="@item" value="@item" 
         @onchange="RadioSelection" 
         checked=@(RadioValue.Equals(item,StringComparison.OrdinalIgnoreCase)) 
         />
      <label for="@item">@item</label>
   </div>
 }
<div>
   <label>Selected Value is @RadioValue</label>
</div>
 @functions
 {
   string RadioValue = "aspnetcore";
    void RadioSelection(ChangeEventArgs args)
    {
      RadioValue = args.Value.ToString();
    }
  }

Source

Blazor 页面

<EditForm Model="Items">
<InputRadioGroup ValueChanged="@((e) => OnRadiochange(e))" TValue="string" ValueExpression="() => SelectedValue">
    @foreach (var item in Items)
    {
        bool Checked= false;
        if (SelectedValue.Equals(item, StringComparison.OrdinalIgnoreCase))
        {
            Checked = true;
        }
    <div class="form-check">
        <InputRadio Value="@item" class="form-check-input" checked=@Checked />
        @item <br />
    </div>
    }
</InputRadioGroup>

代码隐藏

public string SelectedValue { get; set; } = "AspNetCore";
public List<string> Items { get; set; } = new List<string> { "AspNetCore", "AspNet", "SomeJsThingWhatever" };

    private void OnRadiochange(object sender)
    {
        SelectedValue = (string)sender;
        StateHasChanged();
    }