Este fallo me lo he encontrado tratando de hacer una validación a través de JQuery y el plugin validation, del cual intentaré hablar más adelante porque es verdaderamente interesante.
Pero para empezar vamos a hablar de como solucionar este error que da título al post y de paso a indicar la forma correcta de configurarlo.
Cannot read property 'apply' of undefined. Exception occurred when checking element email, check the 'remote' method.
Al intentar realizar una llamada de este tipo:
$("#profileForm").validate({ rules : { email : { required : true, email : true, remote : { type : 'post', url : config.contextPath + '/form/validate/email/exists', data : { email : $('#email').val(), userId : $('#userId').val(), _csrf : $('#csrfToken').val() } } } } });
El problema paso tuvo diferentes estados hasta su final resolución. Esta era la configuración inicial:
<script src="https://code.jquery.com/jquery-3.2.1.slim.min.js" integrity="sha384-KJ3o2DKtIkvYIK3UENzmM7KCkRr/rE9/Qpg6aAZGJwFDMVNA/GpGFF93hXpG5KkN" crossorigin="anonymous"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-validate/1.17.0/jquery.validate.js"></script>
A esta configuración le falta la importación del script 'additional-methods.js', que es el que nos da soporte para el método 'remote' que estabamos intentando usar.
<script src="https://code.jquery.com/jquery-3.2.1.slim.min.js" integrity="sha384-KJ3o2DKtIkvYIK3UENzmM7KCkRr/rE9/Qpg6aAZGJwFDMVNA/GpGFF93hXpG5KkN" crossorigin="anonymous"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-validate/1.17.0/jquery.validate.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-validate/1.17.0/additional-methods.js"></script>
Tras añadir el último script, aún así, no funcionaba y nos indicaba el mismo error. En este caso el problema era en la versión de los scripts que estabamos usando. Por lo que debemos dejar de usar las versiones 'slim' y utilizar las normales. Quedando la cosa:
<script src="https://code.jquery.com/jquery-3.2.1.min.js" integrity="sha256-hwg4gsxgFZhOsEEamdOYGBf13FyQuiTwlAQgxVSNgt4=" crossorigin="anonymous"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-validate/1.17.0/jquery.validate.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-validate/1.17.0/additional-methods.js"></script>
El post como vemos no es gran cosa, pero no esta de más puesto que no hay mucha información sobre dicho error y además no indica mucho por donde pueden ir los tiros.
No hay comentarios:
Publicar un comentario