Đã tìm thấy 2 yếu tố với id không độc đáo # bill-new-address-address-form Magento 2


8

Khi ở trang thanh toán, tôi nhận được lỗi bảng điều khiển sau khi chọn phương thức giao hàng và chuyển sang bước 'thanh toán' tiếp theo.

[DOM] Đã tìm thấy 2 yếu tố với id không duy nhất # billing-new-address-form:

[DOM] Đã tìm thấy 2 yếu tố với id không duy nhất # billing-save-in-address-book: `

Làm thế nào tôi có thể giải quyết vấn đề này?


Đây có phải là cửa hàng Magento 2 mặc định / sạch không? Phiên bản nào? Có vẻ như là một lỗi trong Magento 2. Có vấn đề Gitub nào liên quan đến vấn đề này không? Bắt đầu với Chrome 63, giờ đây nó đã xuất hiện các lỗi liên quan đến DOM.
Erfan

Tôi có cùng một vấn đề trong phiên bản cộng đồng Magento 2.1.9
Supersonic

bất kỳ giải pháp nào cho nó
Ahmad Vaqas Khan

github.com/magento/magento2/issues/13415 - các mẫu từ ./magento/module-checkout/view/frontend/web/template/billing-address/*.html được sử dụng cho mọi phương thức thanh toán không thể bằng nhau để vận chuyển, khi 2 phần tử DOM có cùng ID xuất hiện trên trang, lỗi sẽ xuất hiện. Chúng tôi cần thêm mã phương thức thanh toán vào các ID này nhưng đây là các mẫu frontend. Chỉ có mã JS có thể làm điều đó nhưng tôi không biết làm thế nào.
Alex Gusev

Tôi đã có cùng một vấn đề vào ngày 2.1.8, nhưng với #agferences. Tôi đã ghi đè mô-đun lõi của Thỏa thuận Magento với Magento_CheckoutAgferences trong mẫu tùy chỉnh của mình bằng tệp Mage 2.2 github.com/magento/magento2/tree/2.2/app/code/Magento/ Khăn Tập tin cần thiết: web / template / checkout / checkout- tests.html web / js / model / thỏa thuận-validator.js web / js / view / checkout-
terms.js

Câu trả lời:


1

Vấn đề này được khắc phục trong nhánh phát triển 2.3, nó cũng được nhập vào 2.2 và sẽ được phát hành vào 2.2.6, tôi cũng có thể thấy nó được nhập vào 2.1.

Có 2 nơi cần thay đổi để khắc phục sự cố

nhà cung cấp / 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>

nhà cung cấp / magento / kiểm tra mô-đun / xem / frontend / web / template / billing-address / 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>

Chúc mừng


-1

Nếu bạn muốn giải quyết ban hành hơn hãy làm theo bước này

  1. lần đầu tiên tìm thấy nơi html trong tệp .phtml
  2. Bây giờ anlaysis bất kỳ có được dữ liệu với vòng lặp như (for, foreach)
  3. nếu dữ liệu nhận được với vòng lặp hơn id đó với một số dữ liệu duy nhất

chỉ như thế này

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

và id uniq genarated


nó không hoạt động.
Shekhar Suman
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.