Hola desarrolladores mucho más conocedores del mundo,
Mi pregunta, como se hace en el título, es si es posible eliminar los valores no válidos ingresados que están siendo validados por Parsely.js automáticamente mientras se mantiene el mensaje de parsly.js. Logré esto hasta cierto punto con la siguiente biblioteca que creé, que en realidad es solo una biblioteca llena de expresiones regulares que reemplaza los caracteres incorrectos eliminándolos. Aquí hay algunos ejemplos de cómo se ve esa biblioteca:
//Regex to determine if the string is Alphanumeric (Both letters and numerals). Deletes any values that don't fit the criteria. function hasNumbersAndLetters(input) { var regex = /[^a-zA-Z0-9\s-,]/gi; input.value = input.value.replace(regex, ""); } //Compares the string to a regex looking for numbers only, will remove any values that don't fit the regex. function onlyNumbers(input) { var regex = /[^0-9]/gi; input.value = input.value.replace(regex, ""); }
Estas funciones, de hecho, funcionan con el evento onblur inmediatamente después de escribir un valor incorrecto en el formulario que se está validando, pero cancelan el mensaje parsely.js que indica por qué sucede a través de su validación por ser alfanumérico como ejemplo.
Este es un ejemplo de cómo se ve una de mis entradas:
<input type="text" id="username" name="username" onblur="hasNumbersAndLetters(this)" data-parsley-type="alphanum" required="" value="<?php if (!empty($username)) echo $username; ?>" />
Si puede señalarme en la dirección correcta, se lo agradezco.
Parsley no ha sido diseñado con esto en mente, y la validación de formularios en general no funciona de esta manera. Es posible que pueda salirse con la suya escuchando el field:error
y haciendo los cambios en ese momento, pero la interfaz se verá afectada. Recomiendo encarecidamente seguir los estándares de la comunidad que no "autocorrigen" las entradas.