Ответы пользователя по тегу JavaScript
  • Каким образом изменяется элемент в массиве?

    NikFaraday
    @NikFaraday
    Student full-stack Developer
    Это происходит из-за того, что переменная last содержит ссылку на последний элемент массива result. В JavaScript массивы - это объекты, а при обращении к элементам массива вы получаете доступ к самим объектам, а не их копиям.

    Когда вы выполняете let last = result[result.length - 1], last теперь указывает на тот же самый объект, что и последний элемент result.

    Таким образом, изменение last[1] фактически изменяет значение в result, потому что last и result[result.length - 1] ссылаются на один и тот же объект в памяти.

    Это происходит здесь:last[1] = Math.max(last[1], interval[1]), где обновляется второй элемент последнего интервала в массиве result.
    Ответ написан
    2 комментария
  • Как отображать число с пробелом?

    NikFaraday
    @NikFaraday
    Student full-stack Developer
    Так вот, все нормально работает до тех пор пока цена будет без пробела.


    Вы вкурсе как работают числа? Если вы ставите пробел, тогда ваше число уже не является числом, а является строкой

    Вы должны работать с числами в оригинальном виде, т.е. без пробелов, таких стандартнов придерживаются программисты. При выводе вы можете их выводить как хотите, хоть на шахматной доске, но изначально вы должны работать с числами в таком виде, как они есть
    Ответ написан
    Комментировать
  • Как после редактирования в модальном окне сохранить данные в БД?

    NikFaraday
    @NikFaraday
    Student full-stack Developer
    Попробуйте заменить строку
    $(document).on('click','.read-more',function(e){

    на
    $('#your-item-id').on('click', () => {
       // ....
    })


    А если смотреть в общем, то у вас вообще не верная структура запроса ajax скрипта. Читайте тут
    Ответ написан
    Комментировать
  • Как передать значение переменной из JS в PHP без перезагрузки страницы?

    NikFaraday
    @NikFaraday
    Student full-stack Developer
    Так у вас блок success пустой
    success: (res) => {
        console.log(res);
      }

    Блок success отрабатывает когда у вас возвращается HttpStatusCode 200, но вы там ничего не делаете.

    Что нужно сделать? В соответствующем блоке success настраивать вывод/изменений элементов DOM структуры.

    Ответ написан
    2 комментария
  • Как отследить перемещение элемента?

    NikFaraday
    @NikFaraday
    Student full-stack Developer
    Опираясь на некоторые детали в комментариях к вопросу, могу предположить, что вы могли бы отслеживать саму позицию элемента через JS относительно некоторых веще:
    • Экрана/Монитора
    • Родительский элемент
    • Документ


    Это можно сделать путём того же обсервера, который будет отслеживать изменения этих свойств. Это могут быть таки свойства как ClientHeight/Width и т.д.
    Ответ написан
    3 комментария
  • Как передать массив FormData через ajax?

    NikFaraday
    @NikFaraday Автор вопроса
    Student full-stack Developer
    Методом тыка, спустя три дня перебора комбинаций методов нашёл один, который работает. Конечно, он меня не удовлетворил в силу способа отправки данных, но это, по крайней мере, работает

    let packagesForm = new FormData();
    for (let i = 0; i < packages.length; i++) {
        packagesForm.append(`vm[${i}].Image`, packages[i].Image);
        packagesForm.append(`vm[${i}].MeasureUnit`, packages[i].MeasureUnit);
        packagesForm.append(`vm[${i}].VolumeUnit`, packages[i].VolumeUnit);
        packagesForm.append(`vm[${i}].Volume`, packages[i].Volume);
        packagesForm.append(`vm[${i}].Price`, packages[i].Price);
        packagesForm.append(`vm[${i}].ProductId`, Number(response.id));
    }
    Ответ написан
    Комментировать
  • Как добавить данные из одного input в любой блок (по выбору: 1-ый, 2-ой, 3-ий или 4-ый)?

    NikFaraday
    @NikFaraday
    Student full-stack Developer
    HTML:
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/css/bootstrap.min.css" rel="stylesheet">
    
    <div class="row">
        <div class="col-lg-11" style="padding-top: 10px; padding-bottom: 10px; padding-left: 30px;">
            <input type="text" id="text" class="form-control" />
        </div>
        <div class="col-lg-1" style="padding-top: 10px; padding-bottom: 10px;">
            <input type="button" value="Append" id="append-text" class="btn btn-primary" />
        </div>
    </div>
    <div class="row">
        <div class="col-lg-3" id="container-1">
            <input type="radio" id="item-1" checked="checked" />
            1. Срочное и важное
        </div>
        <div class="col-lg-3" id="container-2">
            <input type="radio" id="item-2" />
            2. Не срочное и важное
        </div>
        <div class="col-lg-3" id="container-3">
            <input type="radio" id="item-3" />
            3. Срочное и не важное
        </div>
        <div class="col-lg-3" id="container-4">
            <input type="radio" id="item-4" />
            4. Не срочное и не важное
        </div>
    </div>


    JS:
    <script src="https://code.jquery.com/jquery-3.6.3.min.js"></script>
    <script src="https://cdn.jsdelivr.net/npm/@popperjs/core@2.9.2/dist/umd/popper.min.js"></script>
    <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/js/bootstrap.min.js"></script>
    
    <script>
        let checkedItemId = 'container-1';
        let radios = $('[id|=item]');
    
        for(let i = 0; i < radios.length; i++) {
            $('#' + radios[i].id).on('click', () => {
                if($('#' + radios[i].id).prop('checked')) {
                    for(let j = 0; j < radios.length; j++) {
                        if (i != j) {
                            $('#' + radios[j].id).prop('checked', false);
                        }
                    }
                    checkedItemId = radios[i].parentElement.id;
                    console.log(checkedItemId);
                }
            })
        }
    
        $('#append-text').on('click', () => {
            let text = $('#text').val();
            $('#text').val('');
            document.getElementById(checkedItemId).innerHTML += '<br/>' + text;
        });
    </script>
    Ответ написан
    Комментировать
  • Как сделать чекбокс, переключающий другие чекбоксы?

    NikFaraday
    @NikFaraday
    Student full-stack Developer
    <input type="checkbox" class="mainCheckboxType1" id="main"> Перключить все<br>
    <input type="checkbox" class="chekboxType1" id="check-1"> 1 чекбокс
    <input type="checkbox" class="chekboxType1" id="check-2"> 2 чекбокс
    <input type="checkbox" class="chekboxType1" id="check-3"> 3 чекбокс
    <script src="https://code.jquery.com/jquery-3.6.3.min.js"></script>


    $('#main').on('click', () => {
    	let checks = $('[id|=check]');
      let mainCheckValue = $('#main').prop('checked');
      
      for(let i = 0; i < checks.length; i++) {
      	$('#' + checks[i].id).prop('checked', mainCheckValue);
      }
    });
    Ответ написан
    Комментировать
  • Как на js правильно прописать?

    NikFaraday
    @NikFaraday
    Student full-stack Developer
    function journal_enable_stepper() {
      $('.stepper').each(function () {
        var $this = $(this);
        if ($this.data('_isEnabled')) {
          return;
        }
        $this.data('_isEnabled', true);
    
        var $input = $this.find('input[name^="quantity"]');
        var value = $input.val();
        var minimum = parseInt($input.data('minimum')) || 1;
        $this.find('.fa-angle-up').on('click', function () {
          $input.val(parseInt($input.val()) + 500);
          $input.trigger('change');
        });
        $this.find('.fa-angle-down').on('click', function () {
          if (parseInt($input.val()) > minimum) {
            $input.val(parseInt($input.val()) - 500);
            $input.trigger('change');
          }
        });
    }
    Ответ написан
  • Android select?

    NikFaraday
    @NikFaraday
    Student full-stack Developer
    Нууууу, можно самому сделать немного пошаманив с css

    UPD: хотя это больше похоже не на select а на radiobutton. По этому вот вам пример настройки select (И вот ещё хороший пример). А вот по Radiobutton.

    А вот тут вы найдёте просто оооочень потрясающие примеры (С исходниками)
    Ответ написан
    Комментировать
  • Как исправить ошибку post 405 (method not allowed)?

    NikFaraday
    @NikFaraday
    Student full-stack Developer
    Почему не находит? Вот статья об Статус Коде 405
    Ответ написан
    Комментировать
  • Как scr=data:image Сохранить в jpg\png?

    NikFaraday
    @NikFaraday
    Student full-stack Developer
    Попробуйте использовать FormData и через id закинуть туда ту имейджу
    Ответ написан
    Комментировать
  • Написание кода коротко плохо?

    NikFaraday
    @NikFaraday
    Student full-stack Developer
    Ну как сказать, если я правильно понимаю, символ ? просто допускает, что данный тип может принимать значение null (Да, проверил, вот ссылка).

    Во втором примере вы явно проверяете на значение отличное от null, И ТОЛЬКО ТОГДА вызываете метод disconnect()

    Разница двух примеров в том, что в первом случае вы всегда будете вызывать метод disconnect(), а во втором, если объект resizeObserver не будет равен null

    UPD: да, на счёт кода. При написании кода (Помимо архитектуры, официальных конвенций по написанию кода и т.д.) опирайтесь на два фактора:
    • Ваш код может легко понять кто-то другой
    • Через две недели вы сможете посмотреть на этот код и понять что он делает и зачем, так будто вы его написали 2 часа назад (грубо говоря)
    • Ваш код может легко изменить кто-то другой
    Ответ написан
    4 комментария
  • Как передать ответ от сервера в JS?

    NikFaraday
    @NikFaraday
    Student full-stack Developer
    Да, для валидации рекомендую делать скрытые <div> контейнеры, в которые потом выводить ошибки. Советую сразу этому контейнеру прилепить класс d-none
    Ответ написан
    Комментировать
  • Как получить предыдущее значение input?

    NikFaraday
    @NikFaraday
    Student full-stack Developer
    let quantityOld = quantityNew;
    quantityNew = $('#input-text-id').val();
    Ответ написан
    Комментировать
  • Как получить элемент имея element.style.(some-style)?

    NikFaraday
    @NikFaraday
    Student full-stack Developer
    Используйте jquery селектор по классу
    Ответ написан
    Комментировать
  • Как делегировать событие mouseenter?

    NikFaraday
    @NikFaraday
    Student full-stack Developer
    Это да
    Навешивать слушатель событий на каждую ячейку таблицы не вариант


    Но я бы сделал автоматизировано. Думаю, с помощью селектором не проблема обратиться к каждой ячейке и уже на ню повешать событие
    Ответ написан
    Комментировать
  • Как обработать ввод ссылки в поисковой строке в SPA приложении на чистом js?

    NikFaraday
    @NikFaraday
    Student full-stack Developer
    Если у вас одностраничный сайт, тогда используйте якорь и в URL ссылке просто указывайте этот якорь для перехода по якорю
    Ответ написан
  • Как вывести квадраты чисел от 10 до 20?

    NikFaraday
    @NikFaraday
    Student full-stack Developer
    for (let i = 10; i <= 20; i++) {
       document.write(i * i);
    }
    Ответ написан