我如何强制选择复选框中只有一个选项等于组的“真”?它可以与jQuery或数据注释一起使用...
因为目前你可以提交所有的错误,我不想允许这样,我希望只有一个必须并且需要是真的,否则提交将不起作用。
<div class="row">
@Html.LabelFor(model => model.Question1CB1, htmlAttributes: new { @class = "control-label col-sm-2" })
<div class="col-sm-1">
<div class="checkbox">
@Html.CheckBoxFor(model => model.Question1CB1, new { @class = "Question1CBs" })
@Html.ValidationMessageFor(model => model.Question1CB1, "", new { @class = "text-danger" })
</div>
</div>
@Html.LabelFor(model => model.Question1CB2, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-sm-1">
<div class="checkbox">
@Html.CheckBoxFor(model => model.Question1CB2, new { @class = "Question1CBs" })
@Html.ValidationMessageFor(model => model.Question1CB2, "", new { @class = "text-danger" })
</div>
</div>
@Html.LabelFor(model => model.Question1CB3, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-sm-1">
<div class="checkbox">
@Html.CheckBoxFor(model => model.Question1CB3, new { @class = "Question1CBs" })
@Html.ValidationMessageFor(model => model.Question1CB3, "", new { @class = "text-danger" })
</div>
</div>
</div>
复选框已经工作,只能选择其中一个
<script>
$(document).ready(function () {
$('.Question1CBs').click(function () {
$('.Question1CBs').not(this).prop('checked', false);
});
});
</script>
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
要实现这个功能,你可以使用jQuery来确保在一组复选框中只有一个被选中。这里是一个简单的示例,展示了如何通过监听复选框的change
事件来实现这一需求:
首先,在你的HTML页面中确保已经引入了jQuery库。如果还没有,可以通过以下方式引入:
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
然后,添加一个jQuery脚本来控制复选框的行为:
<script>
$(document).ready(function () {
$('.Question1CBs').on('change', function () {
// 当一个复选框被选中时
if ($(this).is(':checked')) {
// 先取消其他同组复选框的选中状态
$('.Question1CBs').not(this).prop('checked', false);
}
});
});
</script>
这段脚本会在文档加载完成后,为所有拥有Question1CBs
类的复选框绑定一个change
事件处理器。当用户改变任何一个复选框的状态时,它会检查是否被选中,如果是,则取消同一组内其他复选框的选中状态。
这种方法是在客户端(即浏览器)上执行的即时验证,可以立即给予用户反馈。然而,为了确保数据的完整性和安全性,你还需要在服务器端进行验证。在ASP.NET MVC中,可以通过自定义模型验证属性来实现这一点,但请注意,这个问题的解决方案主要集中在前端交互上,确保单选逻辑的实现。