加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

ASP.NET MVC 3 jQuery验证;禁用不引人注意的OnKeyUp?

发布时间:2020-12-15 18:48:28 所属栏目:asp.Net 来源:网络整理
导读:有没有办法禁用某个验证器(信用卡)的jQuery验证,以便它只发生在onblur,而不是onkeyup? 基于jQuery Validator文档,我以为我可以这样做: $(function () { $("[data-val-creditcard]").validate({ onkeyup: false })}); 但是,它似乎没有起作用。 我也尝试
有没有办法禁用某个验证器(信用卡)的jQuery验证,以便它只发生在onblur,而不是onkeyup?

基于jQuery Validator文档,我以为我可以这样做:

$(function () {
    $("[data-val-creditcard]").validate({
        onkeyup: false
    })
});

但是,它似乎没有起作用。

我也尝试在我的验证器上执行以下操作:

public class CreditCardValidator : DataAnnotationsModelValidator<CreditCardAttribute>
{
    string _message;

    public CreditCardValidator(ModelMetadata metadata,ControllerContext context,CreditCardAttribute attribute)
        : base(metadata,context,attribute)
    {
        _message = attribute.ErrorMessage;
    }

    public override IEnumerable<ModelClientValidationRule> GetClientValidationRules()
    {
        var rule = new ModelClientValidationRule
        {
            ErrorMessage = _message,ValidationType = "creditcard"
        };
        rule.ValidationParameters.Add("onkeyup",false);
        return new[] { rule };
    }
}

它也不起作用,但是我正在使用ValidationParameters来适当使用。

以一种形式输入信用卡号,使其随机从无效更改为有效,然后返回无效,这是一种烦人的事情。

有任何想法吗?谢谢!

解决方法

好吧,

我在同一个问题,发现这个线程:http://old.nabble.com/-validate–onkeyup-for-single-field-td21729097s27240.html

这个想法基本上是覆盖keyup事件并返回false。所以在你的具体情况下,你需要添加:

$('#my-form').validate({
   rules: {
     [...]
   }
} 
// Disable keyup validation for credit card field
$("[data-val-creditcard]").keyup(function() { return false } );

而您会看到,您的信用卡字段仅在模糊或提交时进行检查(但其余的则在键盘上工作)。

我正在寻找同样的解决方案,并发现这里的答案可以改进,所以我认为这将是很好的分享在这里。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读