Ответы пользователя по тегу HTML
  • Почему не работает innerHTML?

    gscraft
    @gscraft
    Программист, философ
    Полагаю, библиотека JSDOM не меняет исходный файл. Вам нужно получить HTML после изменения элемента и передать этот HTML как ответ. Например,

    function getCards() {
      // ... некий код
      return dom.window.document.innerHTML;
    }
    // в обработчике маршрута:
      const html = getCards();
      res.send(html);
    Ответ написан
    6 комментариев
  • Как можно избежать дублирование кода?

    gscraft
    @gscraft
    Программист, философ
    Масса способов. Самое простое, добавьте активным элементам общий класс и работайте с ним, а не с tabs или subTabs, tabs-triggers__item или subtabs-triggers__item раздельно. Плюс, Вам достаточно внести разницу, если она вообще нужна, только в корневой элемент, а не делать различными все классы по иерархии: subtabs-content__item и tabs-triggers__item — лишнее усложнение, достаточно tabs_trigger__item в обоих случаях. Чтобы задать разные стили, достаточно разделять по родителю, а точнее, задать особенности для дочерних вкладок. Плюс, Вам необязательно делать вкладки вложенными друг в друга, можно расположить их друг под другом. Что касается JS, не вызывайте функцию раньше, чем она объявлена, и лучше обернуть от глобальной области видимости:
    function initTabs() {
      // здесь весь нужный код
    }
    document.addEventListener('DOMContentLoaded', initTabs);
    Ответ написан
    Комментировать
  • Как сделать переход на другую страницу если имя и пароль верно?

    gscraft
    @gscraft
    Программист, философ
    На какую страницу и зачем хотите перейти? Логин и пароль не собираетесь отправлять на сервер? Я почему уточняю, если дело в этом, то нужно форме добавить атрибут action="/login-form/handler/url" и, по всей видимости, method="post". Ну или перехватить обработку формы / нажатия на произвольную кнопку и отправить данные через AJAX. Если же ничего делать с логином и паролем не собираетесь, то в JS это window.location.href='новый адрес';
    Ответ написан
    2 комментария
  • Как такое сверстать?

    gscraft
    @gscraft
    Программист, философ
    А в чем проблема-то? Верстайте отдельные блоки, в которых полоса и круг по центру, сверху требуемый текст, и т.д., задайте блоку разные CSS-состояния, .step-completed, .step-selected, .step.-empty, .step-hidden, .step-first, .step-last и т.д., немного напишите на JS, чтобы при клике менять классы.

    Чтобы блоки прокручивались по необходимости, их нужно завернуть в еще один блок, которому задать свойство: overflow: visible (потомкам inline-block или с flex-column & flex-wrap: nowrap), а его завернуть в еще один, которому ограничить ширину и задать свойство overflow-x: auto, это классический подход.

    Тут просто рутина, какие-то под-задачи может вызовут вопросы, но если что, пишите в комментарии.
    Ответ написан
    Комментировать
  • Запрет определённого тел номера в input?

    gscraft
    @gscraft
    Программист, философ
    Хотя в этом и нет смысла — решений множество, как и масса вопросов к конкретному окружению. Разумеется, надежнее проверять на стороне сервера: очистите строку номера от всех знаков, кроме цифр, можно отбросить начальные 7/8, и сравните:
    if ( strpos(preg_replace('/[^0-9]+/', '', '+7 999 111-22-33'), '9991112233') !== false ) // ...

    Ультимативным решением будет использование сторонней библиотеки, например —https://packagist.org/packages/giggsey/libphonenum...

    PS разумеется, это может быть решено с помощью JS:
    document.getElementById('input-id').addEventListener(function (event) {
      if (event.target.value.replace(/[^0-9]+/, '').indexOf('9991112233') >= 0)
        event.target.value = '';
    });
    Ответ написан
    Комментировать
  • Как сделать сортировку в html с использованием php?

    gscraft
    @gscraft
    Программист, философ
    Вячеслав Коростин, сделайте список ссылками или среагируйте на нажатие с JS и сделайте программный переход по ссылке:
    <!-- вместо -->
    <input type="radio" name="sortType" value="sort-az" checked="checked" id="sort-az"><label for="sort-az">Название: А — Я</label>
    <!-- например: -->
    <a href="/showAll?order=asc&sort=name">Название: А — Я</a>

    Или (чисто для примера, можно решить эффективнее):
    document.getElementById('sort-az').onchange = function (event) {
        if (event.target.checked)
            document.location.href =  '/showAll?order=asc&sort=name';
    };
    Ответ написан
    Комментировать
  • Как добавить текст из HTML страницы в базу данных?

    gscraft
    @gscraft
    Программист, философ
    Если в счетчике количество символов, то на сервере это количество лучше посчитать снова: https://www.php.net/manual/ru/function.mb-strlen.php , если речь об иных данных вне формы, то тут два пути: если форма передается без AJAX, с помощью JS дублировать эти данные в input type="hidden" value="...", если передаете с помощью AJAX, то напрямую передать на этапе сбора данных формы в FormData / JSON-тело.

    Вам нужно осваивать PHP с азов. Это может и решите, но дальше двигаться все равно придется и будет непросто. А осваивать есть смысл, это пригодится в жизни технаря в любом случае: https://www.php.net/manual/ru/tutorial.forms.php

    PS https://jsfiddle.net/GennadyS/rmdnjtLu/3/
    Ответ написан
    Комментировать
  • Как убрать повторное изображение?

    gscraft
    @gscraft
    Программист, философ
    В коде попросту дважды ссылка на одно и тоже изображение, на самой картинке и на заголовке "Фото галерея", подпадающая под фильтр движка: $("a[rel^='prettyPhoto']") , prettyPhoto подбирает в галерею все изображения по данному критерию. Либо задайте иное изображение на заголовке, либо уберите rel="prettyPhoto[images]" , вручную открыв галерею ($.prettyPhoto.open , полагаю).
    Ответ написан
    Комментировать