Найдено 2 элемента с неуникальным идентификатором # billing-new-address-form Magento 2

8

На странице оформления заказа я получаю следующую ошибку консоли при выборе способа доставки и переходе к следующему шагу «оплата».

[DOM] Найдено 2 элемента с неуникальным id # billing-new-address-form:

[DOM] Найдено 2 элемента с неуникальным идентификатором # billing-save-in-address-book: `

Как я могу решить эту проблему?

Шехар Суман
источник
Это магазин Magento 2 по умолчанию / чистый? Какая версия? Похоже на ошибку в Magento 2. С этим связана проблема Gitub? Начиная с Chrome 63, теперь он выдает ошибки, связанные с DOM.
Эрфан
У меня та же проблема в Magento Community Edition 2.1.9
Сверхзвуковой
любое решение для этого
Ahmad Vaqas Khan
github.com/magento/magento2/issues/13415 - шаблоны из ./magento/module-checkout/view/frontend/web/template/billing-address/*.html используются для каждого метода оплаты, где адрес для выставления счета не может быть одинаковым к отправке, когда на странице появляются 2 элемента DOM с одинаковым идентификатором, возникает ошибка. Нам нужно добавить код метода оплаты к этим идентификаторам, но это шаблоны внешнего интерфейса. Только код JS может сделать это, но я не знаю как.
Алексей Гусев
У меня была та же проблема на 2.1.8, но с #agreements. Я перезаписаны Magento соглашений , основной модуль с Magento_CheckoutAgreements в моем шаблоне с помощью Mage 2.2 файлы github.com/magento/magento2/tree/2.2/app/code/Magento/... Файлы , необходимые: веб / шаблон / выписка / выписка-agreements.html web / js / model / соглашение-validator.js web / js / view / checkout-соглашения.js
Гедиминас

Ответы:

1

Эта проблема исправлена ​​в ветке 2.3-development, она также портирована на 2.2 и будет выпущена в 2.2.6, я вижу, что она тоже портирована на 2.1.

Есть 2 места, которые нужно изменить, чтобы исправить проблему

продавец / Magento / модуль-подарок-сообщение / просмотр / интерфейс / веб / шаблон / подарок-сообщение-form.html

<!--
/**
 * Copyright © Magento, Inc. All rights reserved.
 * See COPYING.txt for license details.
 */
-->
<!-- ko if: isActive() -->
<div class="gift-message">
    <div class="gift-options-title">
        <span data-bind="i18n: 'Gift Message (optional)'"></span>
    </div>
    <div class="gift-options-content">
        <fieldset class="fieldset">
            <div class="field field-to">
                <label data-bind="attr: {for: 'gift-message-whole-to-' + index }" class="label">
                    <span data-bind="i18n: 'To:'"></span>
                </label>
                <div class="control">
                    <input type="text"
                           class="input-text"
                           data-bind="value: getObservable('recipient'), attr: { id: 'gift-message-whole-to-' + index }">
                </div>
            </div>

            <div class="field field-from">
                <label data-bind="attr: {for: 'gift-message-whole-from-' + index }" class="label">
                    <span data-bind="i18n: 'From:'"></span>
                </label>
                <div class="control">
                    <input type="text"
                           class="input-text"
                           data-bind="value: getObservable('sender'), attr: { id: 'gift-message-whole-from-' + index }">
                </div>
            </div>
            <div class="field text">
                <label for="gift-message-whole-message" class="label">
                    <span data-bind="i18n: 'Message:'"></span>
                </label>
                <div class="control">
                    <textarea id="gift-message-whole-message"
                              class="input-text"
                              rows="5" cols="10"
                              data-bind="value: getObservable('message')"></textarea>
                </div>
            </div>
        </fieldset>

    </div>
</div>
<!-- /ko -->
<div class="actions-toolbar">
    <div class="secondary">
        <button type="submit" class="action secondary action-update" data-bind="
                    attr: {title: $t('Update')},
                    click: $data.submitOptions.bind($data)">
            <span data-bind="i18n: 'Update'"></span>
        </button>
        <button class="action action-cancel" data-bind="
                    attr: {title: $t('Cancel')},
                    click: $data.hideFormBlock.bind($data)">
            <span data-bind="i18n: 'Cancel'"></span>
        </button>
    </div>
</div>

продавец / Magento / модуль-контроль / просмотр / интерфейс / веб / шаблон / биллинг-адрес / form.html

<!--
/**
 * Copyright © Magento, Inc. All rights reserved.
 * See COPYING.txt for license details.
 */
-->
<div class="billing-address-form" data-bind="fadeVisible: isAddressFormVisible">
    <!-- ko foreach: getRegion('before-fields') -->
    <!-- ko template: getTemplate() --><!-- /ko -->
    <!--/ko-->
    <form data-bind="attr: {'data-hasrequired': $t('* Required Fields')}">
        <fieldset
            data-bind="attr: { id:'billing-new-address-form-'+index, value:index}"
            class="billing-new-address-form fieldset address">
            <!-- ko foreach: getRegion('additional-fieldsets') -->
            <!-- ko template: getTemplate() --><!-- /ko -->
            <!--/ko-->
            <!-- ko if: (isCustomerLoggedIn && customerHasAddresses) -->
            <div class="choice field">
                <input type="checkbox" class="checkbox"  data-bind="checked: saveInAddressBook, attr: {id: 'billing-save-in-address-book-' + getCode($parent)}" />
                <label class="label" data-bind="attr: {for: 'billing-save-in-address-book-' + getCode($parent)}" >
                    <span data-bind="i18n: 'Save in address book'"></span>
                </label>
            </div>
            <!-- /ko -->
        </fieldset>
    </form>
</div>

ура

Тоан Нгуен
источник
-1

если вы хотите, чтобы решение было выпущено, чем следовать этому шагу

  1. сначала нашел, где этот HTML в файле .phtml
  2. Теперь проанализируем любые данные с циклом вроде (для foreach)
  3. если данные получаются с циклом, чем этот идентификатор с добавлением некоторых уникальных данных

именно так

<?php
foreach ($variable as $key => $value) {
 ?>
      <div id="billing-new-address-form<?php echo "-"."daynamic some unique id"; ?>"></div>
 <?php
}
?>

и Uniq ID Genarated

Расик Мияни
источник
это не работает.
Шехар Суман