Задать вопрос
  • Стоит ли юзеру давать право смены почты?

    REZ1DENT3
    @REZ1DENT3
    web-developer
    Вопрос: имеет ли смыл дать юзерам право смены электронного адреса, например если они авторизуются через ВК а почту вводят левую просто что бы отстали от них. Не приведёт ли это к дыре в безопасности для добропорядочных пользователей?

    Давать право стоит, но через support и ТОЛЬКО ОДИН РАЗ! Так же стоит заранее сообщить об этом пользователю.
    Данная задача зависит от вида деятельности компании. У меня например более 7 почтовых адресов личного пользования + корпоративные электронные адреса.

    И как правильно сменить почту если к старой юзер доступа не имеет?

    Нет, не правильно. Для смены почты нужно разработать дополнительный "уровень" безопасности. Например пользователь должен ввести один из старых паролей (хранить таблицу хэшей), или ответить на несколько вопросов. Или секретная фраза, слово...
    Ответ написан
    Комментировать
  • Как очистить переменную javascript - DOM?

    REZ1DENT3
    @REZ1DENT3
    web-developer
    ID - должен быть уникальным на странице. А у вас #itemImage повторяется в каждом блоке. Вы с ID обращаетесь как с class, так и замените ID на CLASS.

    Код у вас не верный - это правда.

    Для начала нужно установить событие click на button's:
    document.querySelectorAll('.change-to-details').forEach(function (element) {
       element.addEventListener('click', function (event) {
           creditRes(event.target.parentNode.parentNode.parentNode.parentNode.parentNode);
       }); 
    });


    Удалить из button's аттрибуты onclick="creditRes();"

    Да, да.. Предок долеко. В кнопку можно добавить data-аттрибут с уникальным номером. И делать, примерно, так:

    var $li = document.querySelector('li#li-index-' + $attr_data_with_index);


    creditRes вызывается с текущим li.

    Ну и creditRes:
    function creditRes($li) {
    
        var creditGetImage = $li.querySelector(".itemImage").innerHTML;
          document.getElementById("showItemImage").innerHTML = creditGetImage;
    
        var creditGetItemTitle = $li.querySelector(".creditTitle").innerHTML;
          document.getElementById("showCreditTitle").innerHTML = 	creditGetItemTitle;
    
    
          var creditGetPrice = $li.querySelector(".mainprice").innerHTML;
              var creditResultShow = (creditGetPrice / 2)  / 3 + " грн/мес.";
              	var creditResultShowSecond = creditGetPrice / 3 + " грн/мес.";
    
         	 document.getElementById("newprice").innerHTML = "При первом взносе 50% 3 платежа по: " + creditResultShow; 
         	 	document.getElementById("newsecondprice").innerHTML = "Оплата 3 равными платежами по: " + creditResultShowSecond;
         	 		document.getElementById("cartPrice").innerHTML = "Стоимость: " + creditGetPrice + " грн.";
        }


    Скорее всего, вы хотели это!

    PS. Код я не проверял. Это лишь набросок. Но в теории, код должен работать! Если всё ID заменить на классы!

    Я про них: itemImage, creditTitle, mainprice, ...

    UPD: запилил рабочий код: https://jsfiddle.net/jq6e9epm/1/
    Ответ написан
    5 комментариев
  • Как отправить форму через сабмит, но перед сабмитом отправить пост запрос?

    REZ1DENT3
    @REZ1DENT3
    web-developer
    По моему корзину лучше хранить не на сервере, а на клиенте(например в куках). Проблема сразу же пропадет сама собой.

    А вот мысль по текущей задаче:
    e.preventDefault();
             return true; // добавить return, как подтверждение для отправки формы
        });


    и в options $.ajax добавить async: false
    Ответ написан
    1 комментарий
  • Почему реферальный хвост некоректно работает?

    REZ1DENT3
    @REZ1DENT3
    web-developer
    $_GET['utm_term'];
    Так, как кто пришел в первый раз ещё не получил вашу сессию.
    Ответ написан
    Комментировать
  • Как убрать лишний код при просмотре сайта на мобильных устройствах?

    REZ1DENT3
    @REZ1DENT3
    web-developer
    Нельзя убрать. Качать будут всё! Придется делать сайт на m.example для мобилок.
    Ответ написан
    3 комментария
  • Как получить выделенный текст + n символов по сторонам?

    REZ1DENT3
    @REZ1DENT3
    web-developer
    cdd579161b1842f8b0c58960feb437bc.png

    Вот простой пример, без проверок. Для document.selection делается аналогичным образом.

    function getSelectionText(d) {
        var string = window.getSelection();
        return string.baseNode.data.substring(string.anchorOffset - d, string.focusOffset + d);
    }
    var string = getSelectionText(10);
    Ответ написан
    1 комментарий
  • Как складывать и выводить данные на страницу с одинаковым свойством?

    REZ1DENT3
    @REZ1DENT3
    web-developer
    var data = [{'id': 1, 'amount': 123, 'currency': 'CHF'}, {'id': 2, 'amount': 321, 'currency': 'USD'}, {
        'id': 3,
        'amount': 4324,
        'currency': 'UAH'
    }, {'id': 4, 'amount': 45645, 'currency': 'USD'}, {'id': 5, 'amount': 8972, 'currency': 'CHF'}];
    
    var newData = [];
    for (i = 0; i < data.length; ++i) {
        if (typeof newData[data[i]['currency']] == 'undefined')
            newData[data[i]['currency']] = 0;
        newData[data[i]['currency']] += data[i]['amount'];
    }
    
    for (var key in newData) {
        console.log(key + ' ' + newData[key]);
    }
    Ответ написан
    Комментировать