Ditemukan 2 elemen dengan non-unik id # billing-new-address-form Magento 2

8

Ketika berada di halaman checkout, saya menerima kesalahan konsol berikut ketika memilih metode pengiriman dan pergi ke 'pembayaran' langkah selanjutnya.

[DOM] Ditemukan 2 elemen dengan bentuk non-unik id # billing-new-address-form:

[DOM] Ditemukan 2 elemen dengan id non-unik # billing-save-in-address-book: `

Bagaimana saya bisa mengatasi masalah ini?

Shekhar Suman
sumber
Apakah ini toko Magento 2 default / clean? Versi yang mana? Sepertinya ada bug di Magento 2. Apakah ada masalah Gitub terkait dengan ini? Dimulai dengan Chrome 63, sekarang terjadi kesalahan terkait DOM.
Erfan
Saya memiliki masalah yang sama dalam edisi komunitas Magento 2.1.9
Supersonic
solusi apa pun untuk itu
Ahmad Vaqas Khan
github.com/magento/magento2/issues/13415 - templat dari ./magento/module-checkout/view/frontend/web/template/billing-address/*.html digunakan untuk setiap metode pembayaran di mana alamat penagihan tidak sama dengan untuk pengiriman, ketika 2 elemen DOM dengan ID yang sama muncul di halaman kesalahan muncul. Kita perlu menambahkan kode metode pembayaran ke ID ini tetapi ini adalah template frontend. Hanya kode JS yang dapat melakukannya tetapi saya tidak tahu caranya.
Alex Gusev
Saya memiliki masalah yang sama pada 2.1.8, tetapi dengan #agreements. Saya telah menimpa modul inti Perjanjian Magento dengan Magento_CheckoutAgreements dalam templat kustom saya menggunakan file Mage 2.2 github.com/magento/magento2/tree/2.2/app/code/Magento/… File diperlukan: web / template / checkout / checkout-agreement.html web / js / model / agreement-validator.js web / js / view / checkout-agreement.js
Gediminas

Jawaban:

1

Masalah ini diperbaiki di cabang 2,3-berkembang, itu juga di-backport ke 2.2 dan akan dirilis di 2.2.6, saya bisa melihat itu di-backport ke 2.1 juga.

Ada 2 tempat yang perlu diubah untuk memperbaiki masalah ini

vendor / magento / module-gift-message / view / frontend / web / template / gift-message-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>

vendor / magento / module-checkout / view / frontend / web / template / alamat-penagihan / 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>

Bersulang

Toan Nguyen
sumber
-1

jika Anda ingin Diselesaikan dikeluarkan dari ikuti langkah ini

  1. pertama kali ditemukan di mana html itu dalam file .phtml
  2. Sekarang katakan apa saja yang mendapatkan data dengan loop seperti (untuk, foreach)
  3. jika data didapat dengan loop dari id itu dengan menambahkan beberapa data unik

seperti ini

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

dan uniq id dibuat

Rasik Miyani
sumber
ini tidak bekerja.
Shekhar Suman