我是mvc3和razor引擎的新手,我希望它至少检查一个复选框,以便触发提交按钮。
<div class="editor-field">
@Html.Label("item1")
@Html.CheckBoxFor(Model => Model.item1)
@Html.Label("item2")
@Html.CheckBoxFor(Model => Model.item2)
@Html.Label("item3")
@Html.CheckBoxFor(Model => Model.item3)
</div>
<p>
<input type="submit" value="Create" />
</p>
我知道如果选中了0个复选框,我需要某种标签来呈现文本,并且每个复选框都需要一个id,所以我可以查看它们的值但mvc3 razor中有什么东西可以使这更简单吗?感谢
答案 0 :(得分:9)
许多人的一种方式是
<input type="submit" value="Create" onclick="return submitWith();"/>
<span id="validationMessage" />
并在你的javascript中(你可能在这里有更多,但保持简单)
function submitWith(){
var checkedCount = $("input:checked").length;
var valid = checkedCount > 0;
if(!valid){
$('#validationMessage').html('You must select at least one option');
}
return valid ;
}
答案 1 :(得分:0)
给一些有效的Name属性复选框。每个复选框的名称应该相同。让我们说:
Name="CheckBoxForItems"
按钮Click
创建按钮事件:(In js)
声明数组并使用每个函数检查是否选中了任何复选框:
var arr = new Array();
$('input[name="CheckBoxForItems"]:checked').each(function (i) {
arr.push($(this).attr("id"));
});
if(arr.length > 0)
$("#ButtonId").submit();
}