Помощь Magento 2

  • Автор темы Автор темы mirtacorus
  • Дата начала Дата начала

mirtacorus

Продвинутый (IV)
Сообщения
84
Реакции
12
Баллы
775
Всем привет! Стоит задача отключить автозаполнение в полях Checkout Города и Улицы. Вот что выводится для поля INPUT.
Этот тег - autocomplete="off" отвечает за это, но так как в Хроме "off" не работает, рекомендуется ставить любую фразу типа "bla-bla" - autocomplete="bla-bla".

С этим понятно, проверил в браузере, все ок. НО теперь реализация. И тут накатило.

Понятно, что скрипт генерит это, прошерстил весь проект и для 100% гарантии установил место "off",'off' (поиск осуществлялся разными методами) значение "bla-bla"
:yahoo::yahoo::yahoo:Заменил все, нигде нет! Уделил всю статику. Кэши. Запустил жду.

И тут заново autocomplete="off" - кондратий чуть не хватил. ОТКУДА?

Нужен совет! Как заменить autocomplete="off" на autocomplete="bla-bla" в полях Checkout Города и Улицы?

HTML:
<div class="control" data-bind="css: {'_with-tooltip': element.tooltip}">
        <!-- ko ifnot: element.hasAddons() -->
            <!-- ko template: element.elementTmpl -->
<input class="input-text suggestions-input" type="text" data-bind="
    value: value,
    valueUpdate: 'keyup',
    hasFocus: focused,
    attr: {
        name: inputName,
        placeholder: placeholder,
        'aria-describedby': getDescriptionId(),
        'aria-required': required,
        'aria-invalid': error() ? true : 'false',
        id: uid,
        disabled: disabled
    }" name="city" aria-required="true" aria-invalid="false" id="PQSM4AU" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false" style="box-sizing: border-box;"><div class="suggestions-wrapper"><div class="suggestions-suggestions" style="display: none;"></div></div>
<!-- /ko -->
        <!-- /ko -->

        <!-- ko if: element.hasAddons() --><!-- /ko -->

        <!-- ko if: element.tooltip --><!-- /ko -->

        <!-- ko if: element.notice --><!-- /ko -->

        <!-- ko if: element.error() --><!-- /ko -->

        <!-- ko if: element.warn() --><!-- /ko -->
    </div>
 
Последнее редактирование:
У вас не получится заменить autocomplete на "bla-bla", так как есть стадартные значения токенов из которых можно выбирать, которые используют браузеры, например "name", "email", или "street-address". Но от этого думаю вам лучше не станет. https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#attr-fe-autocomplete

Попробуйте вот такую фишку: <input type="search" autocomplete="off" >

Если не поможет, то вот в стили вот так:
[autocomplete="off"] {
-webkit-text-security: disc;
}


Если в хроме и это не срабоает, то придется перехватывать самописным скриптом, причем придется эго постоянно переписывать, так как хром с каждым релизом переписывает код.
 
У вас не получится заменить autocomplete на "bla-bla", так как есть стадартные значения токенов из которых можно выбирать, которые используют браузеры, например "name", "email", или "street-address". Но от этого думаю вам лучше не станет. https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#attr-fe-autocomplete

Попробуйте вот такую фишку: <input type="search" autocomplete="off" >

Если не поможет, то вот в стили вот так:
[autocomplete="off"] {
-webkit-text-security: disc;
}


Если в хроме и это не срабоает, то придется перехватывать самописным скриптом, причем придется эго постоянно переписывать, так как хром с каждым релизом переписывает код.
В каком файле нужно записать так <input type="search" autocomplete="off" > ? В этом? Насколько я понимаю в Чекоут поле грузитсся отсюда vendor/magento/module-customer/view/frontend/templates/form/register.phtml

При тестировании показывает, что autocomplete="bla-bla" работает. Но вопрос был в том где это прописать в каком файле для поля Город
 
[autocomplete="off"] {
-webkit-text-security: disc;
}

не вариант. Потому, что в Поле Город будет ***********
 
есть множество вариантов, например попробовать через jQuery. что сделает все поля readonly, до тех пор пока юзверь не кликнет на поле. Настроить на нужное поле. Так же можно через несколько секунд после окончания загрузки

Код:
jQuery(document).ready(function($){
 $('input, :input').attr('readonly',true);
 $('input, :input').on( 'click focus', function(){ 
    $('input, :input').attr('readonly',true);
    $( this ).attr('readonly',false);
 });
});

Думаю, что дело в том, что google собирает данные о пользователях, а автокомплит может делать запрос в их дата-центр, что бы "улучшить", они не хотят терять большой массив данных, наверное он им очень нужен...
 
есть множество вариантов, например попробовать через jQuery. что сделает все поля readonly, до тех пор пока юзверь не кликнет на поле. Настроить на нужное поле. Так же можно через несколько секунд после окончания загрузки

Код:
jQuery(document).ready(function($){
$('input, :input').attr('readonly',true);
$('input, :input').on( 'click focus', function(){
    $('input, :input').attr('readonly',true);
    $( this ).attr('readonly',false);
});
});

Думаю, что дело в том, что google собирает данные о пользователях, а автокомплит может делать запрос в их дата-центр, что бы "улучшить", они не хотят терять большой массив данных, наверное он им очень нужен...
Уважаемый, Вы не поняли. Не нужно скрипт autocomplete="bla-bla" работает отлично. Я не знаю в каком файле и куда это записать, чтобы в код
Код:
<input class="input-text suggestions-input" type="text" data-bind="
    value: value,
    valueUpdate: 'keyup',
    hasFocus: focused,
    attr: {
        name: inputName,
        placeholder: placeholder,
        'aria-describedby': getDescriptionId(),
        'aria-required': required,
        'aria-invalid': error() ? true : 'false',
        id: uid,
        disabled: disabled
    }" name="city" aria-required="true" aria-invalid="false" id="PQSM4AU" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false" style="box-sizing: border-box;"><div class="suggestions-wrapper"><div class="suggestions-suggestions" style="display: none;"></div></div
вместо autocomplete="off" подставилось autocomplete="bla-bla".
Не нужно никакие скрипты писать.
 
Искать же темплейт надо не в чекауте, а например вот тут:
Код:
app/code/Magento/Customer/view/frontend/templates/address/edit.phtml
 
У меня есть оба М1 и M2, этот путь из М2 но папки могут отличаться в разных версиях. Поиском ищите в своей версии по кейворду city в html темплейтах
 
А это вообще что за версия? У меня такого и близко нет, ну или я совсем туплю и не понял вопроса.

Код:
<div class="control" data-bind="css: {'_with-tooltip': element.tooltip}">
        <!-- ko ifnot: element.hasAddons() -->
            <!-- ko template: element.elementTmpl -->
<input class="input-text" type="text" data-bind="
    value: value,
    valueUpdate: 'keyup',
    hasFocus: focused,
    attr: {
        name: inputName,
        placeholder: placeholder,
        'aria-describedby': getDescriptionId(),
        'aria-required': required,
        'aria-invalid': error() ? true : 'false',
        id: uid,
        disabled: disabled
    }" name="city" aria-required="true" aria-invalid="false" id="HJY0K7H">
<!-- /ko -->
        <!-- /ko -->

        <!-- ko if: element.hasAddons() --><!-- /ko -->

        <!-- ko if: element.tooltip --><!-- /ko -->

        <!-- ko if: element.notice --><!-- /ko -->

        <!-- ko if: element.error() --><!-- /ko -->

        <!-- ko if: element.warn() --><!-- /ko -->
    </div>

/checkout/#shipping
M2.4.2
 
Вангую - значение атрибута autocomplete сэтится где-то в нокаут компоненте этого хтмл тимплейа. Судя по всему тема кастомная, поэтому сказать где копать тут сложно.
 
Посоветуйте хост с тестовым периодом где можно развернуть сайт с М2 2.3.5 и обновиться до 2.4.2, то везде вылезают косяки (
 
Посоветуйте хост с тестовым периодом где можно развернуть сайт с М2 2.3.5 и обновиться до 2.4.2, то везде вылезают косяки (
localhost :good3:
Докер например установить.
 
Подскажите кто сталкивался
Ставлю модуль [M2] Amasty One Step Checkout когда запускаю deploy вылазят ошибки

Compilation from source: /home/shop/app/code/Amasty/Checkout/view/frontend/web/css/source/mkcss/amcheckout.less
Unable to get content for 'frontend/Mgs/mgsblank/ru_RU/../../../lib/css/source/lib/_lib.less'

содержимое файла amcheckout.less

Код:
// Generating css file. Path from vendor/magento/theme-frontend-blank
@import (reference) '../../../lib::css/source/lib/_lib.less'; // Library files
@import (reference) '../../../lib::css/source/lib/_responsive.less'; // Global responsive
@import '../_module.less';

В дефолтной теме файл css создается, в установленной нет

/pub/static/frontend/Magento/blank/ru_RU/Amasty_Checkout/css/source/mkcss/amcheckout.css

может пути в файле надо другие прописать ?
 
Подскажите кто сталкивался
Ставлю модуль [M2] Amasty One Step Checkout когда запускаю deploy вылазят ошибки

Compilation from source: /home/shop/app/code/Amasty/Checkout/view/frontend/web/css/source/mkcss/amcheckout.less
Unable to get content for 'frontend/Mgs/mgsblank/ru_RU/../../../lib/css/source/lib/_lib.less'

содержимое файла amcheckout.less

Код:
// Generating css file. Path from vendor/magento/theme-frontend-blank
@import (reference) '../../../lib::css/source/lib/_lib.less'; // Library files
@import (reference) '../../../lib::css/source/lib/_responsive.less'; // Global responsive
@import '../_module.less';

В дефолтной теме файл css создается, в установленной нет

/pub/static/frontend/Magento/blank/ru_RU/Amasty_Checkout/css/source/mkcss/amcheckout.css

может пути в файле надо другие прописать ?
Скорее всего проблема в шаблоне Mgs/mgsblank
 
Наверно проблема в самой теме )) но это не первый модуль от Амасти в котором проблема с компиляцией и в этих модулях есть строки

// Generating css file. Path from vendor/magento/theme-frontend-blank
@import (reference) '../../../lib::css/source/lib/_lib.less'; // Library files
@import (reference) '../../../lib::css/source/lib/_responsive.less'; // Global responsive

в других которые работают такого нету
 
Наверно проблема в самой теме )) но это не первый модуль от Амасти в котором проблема с компиляцией и в этих модулях есть строки

// Generating css file. Path from vendor/magento/theme-frontend-blank
@import (reference) '../../../lib::css/source/lib/_lib.less'; // Library files
@import (reference) '../../../lib::css/source/lib/_responsive.less'; // Global responsive

в других которые работают такого нету
Если компиляция проходит для Luma и Blank, то проблема в сторонней теме.
 
Назад
Верх