Files
intranet/web/intranet_repo/projects/authorization/validation.js
T

75 lines
1.9 KiB
JavaScript

const validation = new JustValidate("#signup");
validation
.addField("#first_name", [
{
rule: "required",
errorMessage: "Pflichtfeld"
}
])
.addField("#last_name", [
{
rule: "required",
errorMessage: "Pflichtfeld"
}
])
.addField("#email", [
{
rule: "required",
errorMessage: "Pflichtfeld"
},
{
rule: "email",
errorMessage: "Ungültig"
},
{
validator: (value) => () => {
return fetch("validate-email.php?email=" + encodeURIComponent(value))
.then(function(response) {
return response.json();
})
.then(function(json) {
return json.available;
});
},
errorMessage: "Bereits registriert"
}
])
.addField("#phone", [
{
rule: "required",
errorMessage: "Pflichtfeld"
},
{
rule: "minLength",
value: 6,
errorMessage: "Ungültige Telefonnummer"
},
{
validator: (value) => {
return /^[1-9][0-9\s\-\/()]{4,}$/.test(value);
},
errorMessage: "Ohne führende 0, nur Ziffern"
}
])
.addField("#password", [
{
rule: "required",
errorMessage: "Pflichtfeld"
},
{
rule: "password",
errorMessage: "Zu leicht"
}
])
.addField("#password_confirmation", [
{
validator: (value, fields) => {
return value === fields["#password"].elem.value;
},
errorMessage: "Passwörter müssen übereinstimmen"
}
])
.onSuccess((event) => {
document.getElementById("signup").submit();
});