MVC3 Razor - 至少有一个复选框检查验证

时间:2012-11-05 10:35:35

标签: javascript asp.net-mvc asp.net-mvc-3 razor checkbox

我是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中有什么东西可以使这更简单吗?感谢

2 个答案:

答案 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();
}