【发布时间】:2017-08-14 13:35:06
【问题描述】:
我有几个RadioButtonFor(剃须刀),我正在尝试制作一个 JQuery 脚本,当您检查另一个按钮时,它会取消选中其他按钮。
我有一个模型,其中包含要传递给 Html Helper 和打印机名称的布尔数组:
public class Mymodel
{
public List<PrinterModel> printers { get; set; }
public bool noDefault { get; set; }
}
我的PrinterModel如下:
public class Printermodel
{
public bool selected { get; set; }
public string printerName { get; set; }
}
然后在我看来,:
@using (Html.BeginForm()
{
<div class="form-group">
for (var i = 0; i < Model.printers.Count(); i++)
{
@Html.RadioButtonFor(m => m.printers[i].selected, new { @class = "default" });
@Html.Label(Model.printers[i].printerName);
<br/>
}
@Html.RadioButtonFor(m=>m.noDefaultRadio, new { @class = "noDefault", @checked= "checked" });
@Html.Label("No default printer");
</div>
}
我知道我可以在 JQuery 中使用.prop('checked', false) 取消选中单选框,所以我在第一次播放时尝试取消选中默认按钮:
$('.default').change(function () {
if ($('.default:checked').length > 0) {
$('.noDefault').prop('checked', false);
}
else {
$('.noDefault').prop('checked', true);
}
});
这什么也没做,但对复选框有效,为什么?
另外,@checked="checked" 不会默认选中RadioButtonFor,我也尝试过@checked = true,它也不起作用。
有什么想法吗?
编辑当尝试按照建议使用 name="default" 时,我在导航器中检查页面时看到以下输入:
<input data-val="true" id="printers_0__primarySelected" name="printers[0].primarySelected" type="radio" value="{ disabled = disabled }"
【问题讨论】:
-
试试
.prop('selected', false)单选按钮 -
如果我没记错的话,单选按钮是用来一次选择一个的。也许您缺少任何分组?
-
不知道,分组是什么意思?此外,与 selected 相同的脚本不会做任何事情
-
你不应该把radiobuttonsfor放在一个div或一个表单中吗?
-
@Louis-RochTessier 抱歉忘了准确地说它在
Html.BeginForm和div中
标签: c# jquery asp.net-mvc razor radiobuttonfor