75 lines
1.9 KiB
JavaScript
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();
|
|
});
|