Using the jQuery Validation plugin to validate forms, how would you confirm that a string is exactly X characters long?
valid() from the jQuery Validation plugin: $("#form_id"). valid(); Checks whether the selected form is valid or whether all selected elements are valid.
jQuery is a Javascript library. An unobtrusive validation in jQuery is a set of ASP.Net MVC HTML helper extensions.By using jQuery Validation data attributes along with HTML 5 data attributes, you can perform validation to the client-side.
validator. addMethod( name, method [, message ] ) Description: Add a custom validation method. It must consist of a name (must be a legal javascript identifier), a javascript based function and a default string message.
Since there is (currently) no built-in method for this, you'd need to add your own method. This would work:
jQuery.validator.addMethod("exactlength", function(value, element, param) { return this.optional(element) || value.length == param; }, $.validator.format("Please enter exactly {0} characters."));
Which could then be used like this:
$("#formtovalidate").validate({ rules: { somefield: { exactlength: 10 } });
I've been asked how this works. I don't know all the details; I modeled this method on previously existing ones. However, this is my best attempt to explain it.
value
, element
, and param
. value
is the value entered in the field being validatedelement
is the field itselfparam
is whatever comes after the rule type and colon. In the example above, it's the 10 in exactlength: 10
return
statement. This will give the final verdict of the validation method back to the code that called it. Any validation method that returns true
is saying 'this field passes validation!' It will return the value of the line it's on.return
is followed by two declarations, separated by an 'or' operator (||
). ||
operator means 'evaluate the item left of this. If it's true, return true. If not, try the one on the right. If it's true, return true. Otherwise, return false.' this.optional(element)
. If the element is not required in your rules, this will return true, and so will the validation. Which means 'If I don't tell you that this field is required, I don't care whether it validates.'||
. This is the actual validation test. It compares the length of the field's input with the length you specified it should be. If they are the same, it returns true, the method returns true, and validation passes. Otherwise, validation fails.That's about it. For further help, see the documentation, particularly the part about custom validation methods.
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