Estamos usando FormValidation.io para validaciones de formularios, ahora estamos tratando de usar el validador idéntico usando los atributos html que se aplican a través del complemento declarativo.
¿Lo que nosotros queremos? Queremos que la validación verifique que el campo de confirmación sea el mismo que el campo de contraseña; de lo contrario, debería fallar la validación.
<input class="form-control" data-fv-not-empty="true" data-fv-not-empty___message="The password is required" type="password" placeholder="Password" name="password" id="input-password" autocomplete="off" > <input class="form-control" data-fv-identical="true" data-fv-identical___compare="getPassword()" data-fv-identical___message="The password and its confirm are not the same" type="password" placeholder="Confirm Password" name="confirm" id="input-confirm" autocomplete="off" > <script> function getPassword() { return $('#input-password').val(); } </script> Ahora el documento establece que podemos declarar el valor de comparación como una cadena o una función que devuelve una cadena. Ahora, incluso si llamamos a una función allí, todavía convierte el valor como una cadena, por lo que, según nuestro código actual, mostrará que la confirmación no es válida hasta que el valor de la confirmación no sea igual a "getPassword()" cadena exacta.
Nos gustaría saber cómo podemos configurar la comparación usando atributos html. Podemos lograr lo mismo usando la forma programática pero queremos que funcione usando el modo declarativo
Enlaces de documentación
https://formvalidation.io/guide/validators/identical/ https://formvalidation.io/guide/plugins/declarative/ https://formvalidation.io/updates/
Gracias por adelantado.
Me puse en contacto directamente con el desarrollador original de FormValidation y dijo que esto es algo que no podemos lograr usando atributos html.
Por lo tanto, no podremos lograr esto sin modificar el complemento principal.
Espero que esto ayude a cualquiera que esté buscando la misma respuesta.
Acabo de encontrarme con este problema. Como solución utilizo este truco:
var fv = form.fv; fv.updateValidatorOption(input.name, 'identical', 'compare', function(){ return inputConfirm.value; }); Por supuesto, en un punto de entrada donde inicio la validación de todos los formularios en un bucle, guardo la instancia en form prop: form.fv = fv;