无法在 Razor 页面中选择单选按钮

Posted

技术标签:

【中文标题】无法在 Razor 页面中选择单选按钮【英文标题】:Can't select a Radio button in a Razor page 【发布时间】:2020-02-25 17:29:35 【问题描述】:

我有一个带有 2 个单选按钮的剃须刀页面。但我无法检查其中之一...

<div class="custom-control custom-radio">
    <input type="radio" asp-for="@Model.ActionNeeded" value="Yes" class="custom-control-input"  name="radio-stacked" required>
    <label class="custom-control-label">Yes</label>
</div>
<div class="custom-control custom-radio mb-3">
    <input type="radio" asp-for="@Model.ActionNeeded" value="No" class="custom-control-input"  name="radio-stacked" required>
    <label class="custom-control-label">No</label>
</div>

我错过了什么?这是一个简单的事情,但不能让它工作......

【问题讨论】:

您的收音机没有值,添加一个值,看看您现在是否可以选择它们。 我认为这是一个 CSS 问题。您的标签位于其他 div 下方或被其他 div 覆盖。检查laber或radio的css。 它是从引导网站复制的 asp-for="@Model.ActionNeeded" 正在为两个无线电生成相同的 ID,为每个无线电创建不同的 ID。 【参考方案1】:

asp-for="@Model.ActionNeeded" 正在为两个无线电生成相同的 id。

为每个收音机创建不同的 id 并在标签中添加for=""

<div class="custom-control custom-radio">
    <input type="radio" id="ActionYes" value="Yes" class="custom-control-input"  name="ActionNeeded" required>
    <label for="ActionYes" class="custom-control-label">Yes</label>
</div>
<div class="custom-control custom-radio mb-3">
    <input type="radio" id="ActionNo" value="No" class="custom-control-input"  name="ActionNeeded" required>
    <label for="ActionNo" class="custom-control-label">No</label>
</div>

【讨论】:

@user7849697 我相信模型绑定器使用 name 属性自动将 html 映射到属性。你能检查name="ActionNeeded"现在是否有效吗?【参考方案2】:

你有两个按钮同名,这会让你失去它们的价值:

name="radio-stacked"

【讨论】:

我删除了名称但仍然无法选择 RadioButton 你要为每一个输入一个不同的名字,或者如果你不输入,你必须寻找生成的名字。 添加了名称但仍然无法选择 RadioButton :D 电台必须同名才能被视为一个组 如果你想将它们创建为一个组,你必须在每个组中添加不同的值

以上是关于无法在 Razor 页面中选择单选按钮的主要内容,如果未能解决你的问题,请参考以下文章

Razor 显示/隐藏基于使用 javascript 的单选按钮

MVC 4 Razor 中的多个单选按钮组

jQuery选择器如何选择页面中的所有单选按钮和多选按钮?

单选按钮使用 PHP 解决页面刷新时的默认检查状态

如果在 Sonata Admin 中选择了单选按钮,如何禁用单选按钮

Razor 单选按钮不起作用(ASP.NET MVC)