我需要验证一组复选框,使用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不显眼的验证)将是最好的.
谢谢
解决方法
好的,想出来:
用于服务器验证:
使用数据注释(需要做)
像我这样看待模特儿:
[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',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 });
..
不知道这是否是最好的解决方案,但它的工作:).如果有人知道更好,请发贴.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。