有没有一种方法可以禁用某个验证器(信用卡)的jQuery验证,以便它只发生onblur而不是onkeyup?ASP.net MVC 3 jQuery验证;禁用Unobtrusive OnKeyUp?
基于jQuery的验证文档,我想我可以做这样的事情上:
$(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的。
在表格中输入信用卡号码并将其从无效更改为有效,然后返回无效是一种恼人的做法。
任何想法?谢谢!
意想不到的提示通过返回false来禁用keyup。 – Sam
这是我发现的唯一能够抑制密钥验证的方法。这是过分的,因为我正在做一个Ajax调用,以验证输入。最后,我在输入元素上设置了一个数据属性,该元素由输入元素的onchange事件的ajax结果控制。这使得jquery验证有一个简单的返回true或false,同时仍然向服务器请求数据库验证。 –
有几个事件要压制,我为它们做了一个简单的占位符,'var fnfalse = function(){return false; },然后用它来阻止功能,'$(element).keyup(fnfalse).blur(fnfalse).focusout(fnfalse);'。 –