Форма проверки Magento2: Как отобразить значение атрибута заполнителя в полях?

Goodmorning Stackru,

Я настраиваю одну страницу оформления заказа в Magento 2. Теперь я пытаюсь отображать заполнители вместо меток в форме адреса доставки, но пока безуспешно. Я надеюсь, что кто-то может мне помочь

Ура, Хорхе

ОБНОВИТЬ:

В консоли я вижу, что переменная дает атрибуту заполнитель элемента input.

<input class="input-text" type="text" data-bind="
    value: value,
    valueUpdate: 'keyup',
    hasFocus: focused,
    attr: {
        name: inputName,
        placeholder: placeholder, // <<<< right here
        'aria-describedby': noticeId,
        id: uid,
        disabled: disabled
    }" name="street[0]" placeholder="" aria-describedby="notice-BVWUCFN" id="BVWUCFN">

Теперь я хотел бы знать, есть ли способ изменить эту переменную через бэкэнд, чтобы я мог отображать имя метки в атрибуте заполнителя. Посмотреть скриншот

Извинения за мой плохой английский

4 ответа

Решение

Стандартный способ,

Скопируйте все HTML-файлы из vendor/magento/module-ui/view/frontend/web/templates/form/element/ в app/design/frontend/<Vendor>/<theme>/Magento_Ui/web/templates/form/element/

Тогда поменяй все поменяй placeholder: placeholder в placeholder: label как упомянуто Akis Verillis.

Теперь вам нужно развернуть статические файлы по следующему коду:

 php bin/magento setup:static-content:deploy

И увидеть магию.

Примечание: если у вас есть извлечение из github, попробуйте скопировать из

/app/code/Magento/Ui/view/base/web/templates/form/element/

+ Изменить placeholder: placeholder в placeholder: label

Ответ находится в документации Magneto 2: http://devdocs.magento.com/guides/v2.0/howdoi/checkout/checkout_edit_form.html Шаблоны - те, которые упоминались в предыдущих ответах. Шаблоны из модуля magento-ui используются не в кассе, а в других местах.

В каталоге пользовательских модулей создайте новый файл /view/frontend/layout/checkout_index_index.xml. В этом файле добавьте содержимое, подобное следующему:

...
<referenceBlock name="checkout.root">
<arguments>
    <argument name="jsLayout" xsi:type="array">
        ...
        <item name="shippingAddress" xsi:type="array">
            <item name="children" xsi:type="array">
                <!-- The name of the form the field belongs to -->
                <item name="shipping-address-fieldset" xsi:type="array">
                    <item name="children" xsi:type="array">
                        <!-- the field you are customizing -->
                        <item name="telephone" xsi:type="array">
                            <item name="config" xsi:type="array">
                                <!-- Assigning a new template -->
                                <item name="elementTmpl" xsi:type="string">%Vendor_Module%/form/element/%your_template%</item>

%Vendor_Module%/form/element/%your_template% путь [каталог вашей темы] /Vendor_Module/web/template/form/element/your_template.html

Очистите кеш браузера рядом: удалите все файлы в каталогах pub / static / frontend и var / view_preprocessing.

Можете добавить placeholderв файл layout.xml для вашего поля. Именно так:

<item name="address" xsi:type="array">
<item name="component" xsi:type="string">Magento_Ui/js/form/element/abstract</item>
<item name="config" xsi:type="array">
   <item name="customScope" xsi:type="string">contactForm</item>
   <item name="template" xsi:type="string">ui/form/field</item>
   <item name="elementTmpl" xsi:type="string">ui/form/element/input</item>
</item>
<item name="placeholder" xsi:type="string">Address</item>
<item name="dataScope" xsi:type="string">address</item>
<item name="label" xsi:type="string">Address</item>
<item name="sortOrder" xsi:type="string">20</item>
<item name="validation" xsi:type="array">
  <item name="required-entry" xsi:type="string">true</item>
</item>

Если это полезно для вас, определение этого элемента в: /app/code/Magento/Ui/view/base/web/templates/form/element/input.html Он определяет вход как:

<input
class="admin__control-text"
type="text"
data-bind="
    value: value,
    hasFocus: focused,
    attr: {
        name: inputName,
        placeholder: placeholder,
        'aria-describedby': noticeId,
        id: uid,
        disabled: disabled
}" />
Другие вопросы по тегам