const n = new FormData(this);
// зачем тут был нужен t ?
// правила - имя поля: ['правило', параметры...]
const rules={
'_': ['nempy'], // по умолчанию будем проверять на непустое значение
'frominternet': ['or','fromcomputer','frominternet'], // здесь имена полей, в которых обязано быть хотя бы одно непустое значение
'fromcomputer': ['or','fromcomputer','frominternet']
}
for (let [e, a] of n.entries()) {
let rule=rules[e]||rules['_'];
if(rule[0]==='nempty'){
if (n.get(e) === ""){
anim(e);
}
} else if (rule[0]==='or') {
let found=false;
for(let i=1;i<rule.length;i++){
if (n.get(rule[i]) !== "") found=true;
}
if(!found){
anim(e);
}
}
}
Ну и на сервере все равно нужно валидировать. Даже если броузер что-то там провалидировал.
P.S. писал прямо сюда, без проверки, нужно проверить на синтаксис
Danya Wyse, Хотя, возможно и с градиентами. Вот только резать нужно не отдельным слоем бякграунлда, а clip-rect. Ну и бякграунд будет отдельным дивом внутри. Сделано корявенько, но выглядит, вроде, как надо.
Danya Wyse, Спрашивай автора ответа, я просто вывел его вариант в более удобной для этого сайта форме.
imho,
Нет, в таком виде это невозможно. Тут бякграунд строится как 2 элемента, в нижнем
на золотом фоне рисуется черная полоса, повернутая на 150%, в верхнем, поверх этой картинки рисуется черный прямоугольник с уменшеными на 5px габаритами. Так что прозрачность так не получить.
Вероятно, можно svg нарисовать и поставить фоном, растянутым по всей картинке.
Кто должен проверить оригинальность? Клиент получает документ как ? По почте? Загружает с сайта ? Какие документы посылаются?
Один из вариантов - посылать запароленный архив, а пароль пусть пользователь сам себе задаст в личном кабинете.
Если вам хочется, чтобы огонь залезал поверх верхней секции и верхняя секция оставалась кликабельной - есть свойство pointer-events:none; в стилях.
В этом случае "огонь" - отдельный элемент с таким свойством и позиционированный с таким z-индексом как надо .
А если НЕ использовать htmlspecialchars , будет ли приходить более менее нормальный html? С какой целью используется htmlspecialchars ? Нужно ли вставленные вручную элементы оформления тоже пропускать через эту функцию?
Ну, дык. В первом варианте никакой clearRect не вызывается, а вызывается context.translate. Нужно запоминать дельты и вызывать отрисовку задач.
Во втором случае - нужно добавлять один раз, а не два. Вероятно, нужно пристрелить taskList.push(task), впрочем можно и taskList.map...
I.CaR Soft, Фокус - это что такое ? Насколько прокручено меню? Запомнить scrollTop элемента меню в localStore по клику на пункт меню и восстановить при показе новой страницы.
My1Name, Тут проверяется владение Google Map Api, возможно это было отражено в вакансии. С учетом необходимого уточнения пунктов в гугле - дня должно хватить. Неделя - если читать документацию придется по всем пунктам ТЗ. Все примеры, которые требуются по ТЗ, по моим воспоминаниям, встречаются в родной документации. Собственно работа будет в том, чтобы объединить их в одном скрипте.
alexeyshkolnik, Традиционное ООП стороение приложения выделяет слой отображения и слой данных. Бизнес-логика в SQL - означает, что слой данных будет разделен между двумя отдельными системами программирования. Требуется довольно серьезное планирование архитектуры, чтобы угадать какие конкретно компоненты логики не будут менятся в течении жизни приложения.
Единственный разумный минус - дороговизна поддержки. Если для "все в PHP" достаточно квалифицированного кодера, для "неизвестная часть логики в SQL" требуется еще и SQL кодер дополнительно, что может сильно удорожить поддержку.
tyxeo, Нужно смотреть по вкладке Сеть в Хроме. Если файлы каждое обновление страницы качаются заново - то правильно. Если не качаются - нужно смотреть какие реально заголовки кэширования долетают до броузера и почему не те, которые нужно
Ну и на сервере все равно нужно валидировать. Даже если броузер что-то там провалидировал.
P.S. писал прямо сюда, без проверки, нужно проверить на синтаксис