Is there a way to disable the jQuery Validation for a certain validator (creditcard) so that it only occurs onblur, instead of onkeyup?
Based on the jQuery Validator documentation I thought I could do something like this:
$(function () { $("[data-val-creditcard]").validate({ onkeyup: false }) });
However, it doesn't seem to be working.
I also tried doing the following on my validator:
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 }; } }
It doesn't work either, but I was just taking a stab at the appropriate use of ValidationParameters.
It is kind of annoying to be entering a credit card number in a form and having it randomly change from invalid to valid, then back to invalid.
Any ideas? Thanks!
Ok guys,
I was in the same problem and found this thread: http://old.nabble.com/-validate--onkeyup-for-single-field-td21729097s27240.html
The idea is basically to overwrite the keyup event and return false. So in your specific case you'll need to add:
$('#my-form').validate({ rules: { [...] } } // Disable keyup validation for credit card field $("[data-val-creditcard]").keyup(function() { return false } );
And you'll see that your credit card field is only checked on blur or submit (but the rest is working on keyup also).
I was looking for the same solution, and found that the answer here could be improved, so I thought it would be nice to share it here.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With