Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function bindValidators() {
- let inputFields = $("form div.form-group input.form-control");
- for (let i = 0; i < inputFields.length - 1; i++) {
- let currentField = $(inputFields[i]);
- let nextField = null;
- let name = currentField.attr("name");
- if(name === "user[password]"){
- nextField = $(inputFields[i + 1]);
- }
- let validationFunction = getValidationFunction(name);
- bindValidator(validationFunction, currentField, nextField);
- }
- }
- function bindValidator(validationFunction, field, nextField) {
- field.on("input", function () {
- if(validationFunction(field)) {
- field.css("border-color", "green");
- } else {
- field.css("border-color", "red");
- }
- });
- if(nextField !== null) {
- nextField.on("input", function () {
- if(validateConfirmPassword(field, nextField)) {
- nextField.css("border-color", "green");
- } else {
- nextField.css("border-color", "red");
- }
- });
- }
- }
- function getValidationFunction(fieldName) {
- switch (fieldName) {
- case "user[username]":
- return validateUsername;
- case "user[email]":
- return validateEmail;
- case "user[password]":
- return validatePassword;
- }
- }
- function validateUsername(username) {
- username = username.val().trim();
- return /^[^ ]{6,25}$/.test(username);
- }
- function validateEmail(email) {
- email = email.val().trim();
- return /^[^ ]+@[a-z][a-z-]*(\.[a-z]+)+$/.test(email);
- }
- function validatePassword(password) {
- password = password.val().trim();
- return /^[^ ]{6,25}$/.test(password);
- }
- function validateConfirmPassword(password, confirmPassword) {
- return password.val().localeCompare(confirmPassword.val()) === 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement