asp.net-mvc - 不显眼的 MVC3 验证复选框组

标签 asp.net-mvc asp.net-mvc-3

我需要使用 MVC3 不显眼的验证来验证一组复选框。我该怎么做?我找到了这个并尝试了它,但它不起作用。

$(function(){

        $.validator.addMethod('cb_selectone', function(value,element){
            if(element.length>0){
                for(var i=0;i<element.length;i++){
                    if($(element[i]).val('checked')) return true;
                }
                return false;
            }
            return false;
        }, 'Please select at least one option');

        $('#main').validate({rules:{Services:"cb_selectone"}});

...

我的HTML:
<input type="checkbox" class="checkbox" name="Services" value="1" />
<input type="checkbox" class="checkbox" name="Services" value="2" />
<input type="checkbox" class="checkbox" name="Services" value="3" />

如果有人提供带有服务器端 + 客户端验证的完整解决方案(当然使用 MVC3 不显眼的验证),那将是最好的。

谢谢

最佳答案

好吧,想通了:

服务器验证:
使用数据注释(必填)

就像在我的 View 模型中一样:

[Required(ErrorMessageResourceName = "fld_Service_val_Required_lbl", ErrorMessageResourceType = typeof(Resources.Service.Controllers.Firm))]
public ICollection<int> Services { get; set; }

为了在我的 html 中进行客户端验证,我在输入复选框中添加了一个类:
<input type="checkbox" class="checkbox required-checkbox" name="Services" value="1" />
<input type="checkbox" class="checkbox required-checkbox" name="Services" value="2" />
<input type="checkbox" class="checkbox required-checkbox" name="Services" value="3" />

并且:
$(function(){
        $.validator.addMethod('required_group', function(value, element) {
            var $module = $(element).parents('form');
            return $module.find('input.checkbox:checked').length;
        }, 'Select at least one Service please');
        $.validator.addClassRules('required-checkbox', { 'required_group' : true });  

..

不确定这是否是最好的解决方案,但它有效:)。如果有人知道更好,请张贴。

关于asp.net-mvc - 不显眼的 MVC3 验证复选框组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5662589/

相关文章:

c# - 第三方 dll 在 ASP.NET MVC 项目中找不到其依赖项

asp.net-mvc-3 - 我如何在 asp.net mvc 中为我的存储库方法定义预先加载

asp.net-mvc-3 - 当我按照此示例操作时,为什么会出现解析器错误?

jquery - 在 jquery post 到 Controller 中包含 @Model 属性

asp.net-mvc - 如何在 ADO.NET 中使用存储库和工作单元模式?

c# - .NET Forms 身份验证在超时之前注销用户

c# - 在 Action Filter onActionExecuting 上重定向时,请求的资源上存在错误 'Access-Control-Allow-Origin' header

javascript - 如何将 Entity Framework 数据设置为 JavaScript 变量?

c# - 如何访问 MVC 3 中 Request.Form 集合中未验证的项目

asp.net-mvc-3 - 具有无参数构造函数的 Ninject 和 Provider 模型