Add email and phone validation to request-access modal
This commit is contained in:
@@ -440,8 +440,13 @@ async def request_access(request: Request, db: Session = Depends(get_db)):
|
|||||||
manager = str(data.get("manager", "")).strip()
|
manager = str(data.get("manager", "")).strip()
|
||||||
products = data.get("products", [])
|
products = data.get("products", [])
|
||||||
|
|
||||||
|
import re as _re
|
||||||
if not name or not company or not email or not phone:
|
if not name or not company or not email or not phone:
|
||||||
raise HTTPException(status_code=422, detail="Заполните все обязательные поля")
|
raise HTTPException(status_code=422, detail="Заполните все обязательные поля")
|
||||||
|
if not _re.match(r'^[^\s@]+@[^\s@]+\.[^\s@]+$', email):
|
||||||
|
raise HTTPException(status_code=422, detail="Некорректный email")
|
||||||
|
if not _re.match(r'^[\+\d][\d\s\-\(\)]{6,18}$', phone):
|
||||||
|
raise HTTPException(status_code=422, detail="Некорректный номер телефона")
|
||||||
|
|
||||||
products_text = ""
|
products_text = ""
|
||||||
if products:
|
if products:
|
||||||
|
|||||||
@@ -175,11 +175,23 @@
|
|||||||
const checked = [...document.querySelectorAll('#am-products input[type=checkbox]:checked')];
|
const checked = [...document.querySelectorAll('#am-products input[type=checkbox]:checked')];
|
||||||
const products = checked.map(c => c.value);
|
const products = checked.map(c => c.value);
|
||||||
|
|
||||||
|
const emailRe = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
|
||||||
|
const phoneRe = /^[\+\d][\d\s\-\(\)]{6,18}$/;
|
||||||
if (!name || !company || !email || !phone) {
|
if (!name || !company || !email || !phone) {
|
||||||
errEl.textContent = 'Пожалуйста, заполните все обязательные поля';
|
errEl.textContent = 'Пожалуйста, заполните все обязательные поля';
|
||||||
errEl.style.display = 'block';
|
errEl.style.display = 'block';
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
if (!emailRe.test(email)) {
|
||||||
|
errEl.textContent = 'Введите корректный email';
|
||||||
|
errEl.style.display = 'block';
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (!phoneRe.test(phone)) {
|
||||||
|
errEl.textContent = 'Введите корректный номер телефона';
|
||||||
|
errEl.style.display = 'block';
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
btnSubmit.disabled = true;
|
btnSubmit.disabled = true;
|
||||||
btnSubmit.textContent = 'Отправка...';
|
btnSubmit.textContent = 'Отправка...';
|
||||||
|
|||||||
Reference in New Issue
Block a user