我在 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/