首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >验证复选框-前端MVC3

验证复选框-前端MVC3
EN

Stack Overflow用户
提问于 2011-06-22 16:56:00
回答 2查看 1.9K关注 0票数 3

我已经创建了以下自定义属性来帮助我验证必需的复选框字段:

代码语言:javascript
复制
    public class CheckboxRequired : ValidationAttribute, IClientValidatable
{
    public CheckboxRequired()
        : base("required") { }

    public override bool IsValid(object value)
    {
        return (bool)value == true;
    }

    public IEnumerable<ModelClientValidationRule> GetClientValidationRules(ModelMetadata metadata, ControllerContext context)
    {
        ModelClientValidationRule rule = new ModelClientValidationRule();
        rule.ErrorMessage = FormatErrorMessage(metadata.GetDisplayName());
        rule.ValidationType = "mandatory";
        yield return rule;

    }
}

但是,我试图让它触发客户端,而不是在调用我的ActionResult (if (ModelState.IsValid))时触发

当我调用我的ActionResult时,验证确实起作用了,但我更希望在进行到这一步之前进行验证。

我需要做哪些修改才能让验证在客户端发挥作用?

谢谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-06-22 17:32:09

为了实现客户端,您可以添加例如一个jQuery验证器方法和一个不显眼的适配器(简单示例):

代码语言:javascript
复制
// Checkbox Validation 
jQuery.validator.addMethod("checkrequired", function (value, element) 
{     
      var checked = false;     
      checked = $(element).is(':checked');     
      return checked; 
}, '');  

jQuery.validator.unobtrusive.adapters.addBool("mandatory", "checkrequired");

我希望它能帮上忙。

票数 3
EN

Stack Overflow用户

发布于 2012-01-23 01:03:02

旧的好的Regex怎么样?

代码语言:javascript
复制
[RegularExpression("^(true|True)$", ErrorMessage="Required...")]
public bool AgreeWithTos { get; set; }

同时接受"true“和”True“作为javascript和.NET格式的布尔值。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6437315

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档