c# - 如何检查 Razor 中是否选中了 RadioButton?

标签 c# html asp.net-mvc asp.net-mvc-4 razor

我在 cshtml 文件中有以下代码行,

<div class="YesNo">
    <label><input type="radio" name="YesNo_@pNum" value="Yes" />@yesLabel</label>
    <label><input type="radio" name="YesNo_@pNum" value="No" checked />@noLabel</label>
</div>

如何在 Razor 中使用 if 条件来检查是否选中"is"单选按钮,然后仅显示某个标签?

我的模型中有这两个属性,

public string YesLabel { get { return COff.YesLabel ?? "Yes"; } }
public string NoLabel { get { return COff.NoLabel ?? "No"; } }

我在 cshtml 文件中也有 2 个变量,

var yesLabel = off.YesLabel;
var noLabel = off.NoLabel;

我的 .cs 文件之一中有这 2 个属性,

public string YesLabel { get; set; }
public string NoLabel { get; set; }

我使用了这个 JS 代码并且它有效,但由于我的“否”radioButton 已被选中,我无法获得所需的输出,也就是说,如果我在访问页面后选择"is",我看不到我的代码工作,因为内存中总是检查“否”,

$(function () {                       
    var checkedRadio = $('[name="YesNo_@placementNumber"]:radio:checked').val();
    if (checkedRadio == "Yes") {
        $("#sel").html("Selected Value: " + checkedRadio);
    }
});

请提供任何帮助,我们将不胜感激。

最佳答案

我不确定这是否是您的问题,但我发现您认为您有 name="YesNo_@pNum"。我猜 @pNum 是服务器端变量,输出是 name="YesNo_X"。然后在 JS 中你有 $('[name="YesNo_@placementNumber"],它永远不会工作,因为那不是 radio 的名称。

如果 placementNumber 是一个 JS 变量,解决方案是更改选择器:

$('[name="YesNo_' + placementNumber + '"]:radio:checked')

如果你的 JS 中没有变量 placementNumber,你可以向包裹 radio 的 div 添加一个 id,然后选择它,如下所示:

<div class="YesNo" id="radios">
    <label><input type="radio" name="YesNo_@pNum" value="Yes" />@yesLabel</label>
    <label><input type="radio" name="YesNo_@pNum" value="No" checked />@noLabel</label>
</div>

然后获取检查的值:

var checkedRadio = $('#radios :radio:checked').val();

我认为您的问题可能是您希望代码在检查的 radio 发生变化时运行。我相信这可能是因为:

i dont see my code working because "No" is always checked in the memory

所以,你需要做的是:

$(function () {                       
    var radios = $('[name="YesNo_@placementNumber"]:radio');
    radios.on("change", function() {
        if ($(this).prop("checked")) {
            $("#sel").html("Selected Value: " + $(this).val());
        }
    });
});

关于c# - 如何检查 Razor 中是否选中了 RadioButton?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33765849/

相关文章:

c# - 硬币被抛出,直到一侧连续跌落 3 次

c# - 需要用C#写的RPC调用例子

c# - 允许使用 AutoMapper 或类似工具映射动态类型?

php - 重音 "e"即使在元标记之后也显示为问号

javascript - 使用 Internet Explorer 11 时出现语法错误 'SCRIPT1002'

asp.net-mvc - 从 Angularjs 迁移到 Blazor

c# - FormCollection 未传递给 Controller

c# - 如何处理显式接口(interface)事件?

c# - 服务器无法在发送 HTTP header 后附加 header

javascript - 如何使用 iframe 编写可调整大小的页面?