Blazorise Check组件点击无法勾选、disabled属性失效问题求助
问题原因
- 点击无法正常勾选的原因有两个:
- 代码中为Check组件赋值的
id="@Checkbox1"格式,若未在代码块中提前声明Checkbox1/2/3对应的字符串变量,会导致渲染后label的for属性与input的id不匹配,点击label文本时无法触发对应input的勾选动作。 - 同时使用外层
InlineField行内容器和每个Check组件的Inline="true"属性,会造成行内样式与交互逻辑冲突,影响点击事件的正常触发。
- 代码中为Check组件赋值的
- disabled属性不生效的原因:Blazorise封装的组件参数遵循PascalCase命名规范,你使用的小写
disabled属于未被组件识别的原生自定义属性,组件内部不会将其关联到禁用逻辑,因此不生效。
解决办法
- 调整禁用参数命名:将所有Check组件的小写
disabled替换为Blazorise官方定义的Disabled参数。 - 移除重复行内配置:二选一保留一种行内布局配置即可,要么保留外层
InlineField容器,删除每个Check组件的Inline="true"属性;要么删除外层InlineField容器,保留每个Check的Inline="true"属性。 - 修正id赋值逻辑:要么直接给id设置固定字符串(如
id="checkbox1"),要么在@code代码块中提前声明对应id变量:
@code { private string Checkbox1 = "checkbox1"; private string Checkbox2 = "checkbox2"; private string Checkbox3 = "checkbox3"; // 保留你原有Person、Action、ActionType等相关定义 }
调整后的可用示例代码如下:
<Form @onsubmit="HandleSubmit"> <InlineField> <Check TValue="bool" id="checkbox1" @bind-Checked="Person.Check1" Disabled="@(Action == ActionType.View)">Check 1</Check> <Check TValue="bool" id="checkbox2" @bind-Checked="Person.Check2" Disabled="@(Action == ActionType.View)">Check 2</Check> <Check TValue="bool" id="checkbox3" @bind-Checked="Person.Check3" Disabled="@(Action == ActionType.View)">Check 3</Check> </InlineField> </Form>
内容的提问来源于stack exchange,提问作者polonskyg
相关产品推荐
相关产品推荐

