Sha*_*eKm 11 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"}});
Run Code Online (Sandbox Code Playgroud)
...
我的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" />
Run Code Online (Sandbox Code Playgroud)
如果有人提供了服务器端+客户端验证的完整解决方案(当然使用MVC3不引人注意的验证),那将是最好的.
谢谢
Sha*_*eKm 21
好吧,想通了:
用于服务器验证:使用数据注释(必需将执行此操作)
在我的视图模型中是这样的:
[Required(ErrorMessageResourceName = "fld_Service_val_Required_lbl", ErrorMessageResourceType = typeof(Resources.Service.Controllers.Firm))]
public ICollection<int> Services { get; set; }
Run Code Online (Sandbox Code Playgroud)
为了在我的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" />
Run Code Online (Sandbox Code Playgroud)
并且:
$(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 });
Run Code Online (Sandbox Code Playgroud)
..
不确定这是否是最好的解决方案,但它的工作原理:).如果有人知道更好请发帖.
归档时间: |
|
查看次数: |
9746 次 |
最近记录: |