The jQuery validator valid() method ( http://jqueryvalidation.org/valid ) checks whether the selected form is valid or whether all selected elements are valid.
The jQuery validator element() method ( http://jqueryvalidation.org/Validator.element/ ) checks one element, returns true if it is valid, otherwise false.
When using remote methods during the first validation of the form, both methods incorrectly indicated that the element is being validated.
How to use valid() or element() using the remote validation method?
Stack Overflow.site/questions/1305033 / ... provides a solution, but it does not work properly with current versions of jQuery Validator. element() no longer returns undefined while an asynchronous call works like this.check( checkElement ) !== false (line 423 from version 1.1.1) returns only true or false . Thus, it is possible to arbitrarily pause 100 ms, but there is no check whether this corresponds to the correct amount of time.
By the way, my reason to ask this question is because I want to use jQueryValidator with inline editing. https://jsfiddle.net/vctt9utd/ shows a working example, with the exception of remote methods.
<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>Testing</title> <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.js" type="text/javascript"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-validate/1.13.1/jquery.validate.js" type="text/javascript"></script> <script type="text/javascript"> $(function(){ var validator=$("#myForm").validate({ rules: { bla: { minlength:2, maxlength:4, required:true, remote: "validate.php" } }, messages: { bla: { remote:"error message" } } }); $('#testit').click(function(){ $('#bla').val('test'); console.log($('#bla').valid()); console.log(validator.element('#bla')); }) }); </script> </head> <body> <form id="myForm" method="post"> <input name="bla" id="bla" value="" readonly> </form> <button id="testit">testit</button> </body> </html>
source share