【问题标题】:Evaluate ID of checkbox in the onclick method在 onclick 方法中评估复选框的 ID
【发布时间】:2020-03-29 10:08:12
【问题描述】:

我有一个带有一些复选框的剃须刀页面。我想在单击 CB 后评估复选框 ID。这就是我目前所拥有的:

 <input type="checkbox" id="CB_a" @onchange="eventArgs => { UpdateButton(eventArgs.Value); }"  />

@code {

private void UpdateButton(object checkedValue)
    {

    }

}

将文本字段的 id (CB_a) 作为第二个参数发送到 UpdateButton 方法的正确语法是什么?

【问题讨论】:

    标签: asp.net-core razor razor-pages blazor blazor-server-side


    【解决方案1】:
    <input type="checkbox" id="CB_a" @onchange="eventArgs => { UpdateButton(eventArgs.Value, "CB_a"); }"  />
    
    @code {
        private void UpdateButton(object checkedValue, string id)
        {
    
        }
    
    }
    

    【讨论】:

    • 我认为 OP 有不止一个复选框。我认为您可以再次使用“CB_a”而不是id。避免重复似乎是一项挑战。
    • 重复可能会导致细微的错误(人们往往会忘记更改两个字符串),我建议仅在非常简单的情况下使用它
    【解决方案2】:

    如果您不介意将输入包装到组件中:

    <MyInput id="Cb_a" OnChange="(e)=> { UpdateButton(e.Item1.Value, e.Item2); }"></MyInput>
    <MyInput id="Cb_b" OnChange="(e)=> { UpdateButton(e.Item1.Value, e.Item2); }"></MyInput>
    <MyInput id="Cb_c" OnChange="(e)=> { UpdateButton(e.Item1.Value, e.Item2); }"></MyInput>
    <MyInput id="Cb_d" OnChange="(e)=> { UpdateButton(e.Item1.Value, e.Item2); }"></MyInput>
    
    @code{
    
        private void UpdateButton(object value, string id)
        {
    
        }
    
    }
    

    你的组件看起来像这样:

    MyInput.razor:
    
    <input type="checkbox"  @onchange="(e)=>OnChange.InvokeAsync(new Tuple<ChangeEventArgs, string>(e, id))" id="@id" />
    
    @code {
    
        [Parameter]
        public string id { get; set;}
    
        [Parameter]
        public EventCallback<Tuple<ChangeEventArgs,string>> OnChange { get; set; }
    
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-04-15
      • 2012-06-04
      • 1970-01-01
      • 2016-06-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多