Измените классы и имена полей формы оформления заказа


Я пытаюсь понять, как настроить форму оформления заказа, изменив классы, потому что я хочу стилизовать ее с помощью начальной загрузки вместо стилей Magento по умолчанию. Я нигде не вижу, чтобы они были определены, и, читая и просматривая документацию разработчика Magento, похоже, что они динамически генерируются http://devdocs.magento.com/guides/v2.0/howdoi/checkout/checkout_new_field.html Но в этой документации не похоже, что есть какой-либо способ добавления пользовательских классов к элементам оболочки или чего-либо еще.

Это вывод по умолчанию для первого имени:

<div class="field _required" data-bind="visible: visible, attr: {'name': element.dataScope}, css: additionalClasses" name="billingAddresscheckmo.firstname">

    <label class="label" data-bind="attr: { for: element.uid }" for="DPGHTAP">
        <!-- ko if: element.label -->
        <span data-bind="text: element.label">First Name</span>
        <!-- /ko -->
    </label>

    <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': noticeId,
        id: uid,
        disabled: disabled
    }" name="firstname" placeholder="" aria-describedby="notice-DPGHTAP" id="DPGHTAP">
<!-- /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>
</div>

Я бы предпочел, чтобы результат был похож на этот:

<div class="form-group field _required" data-bind="visible: visible, attr: {'name': element.dataScope}, css: additionalClasses" name="billingAddresscheckmo.firstname">

    <label class="label" data-bind="attr: { for: element.uid }" for="DPGHTAP">
        <!-- ko if: element.label -->
        <span data-bind="text: element.label">First Name</span>
        <!-- /ko -->
    </label>

    <div class="control" data-bind="css: {'_with-tooltip': element.tooltip}">
        <!-- ko ifnot: element.hasAddons() -->
            <!-- ko template: element.elementTmpl -->
<input class="form-control input-text" type="text" data-bind="
    value: value,
    valueUpdate: 'keyup',
    hasFocus: focused,
    attr: {
        name: inputName,
        placeholder: placeholder,
        'aria-describedby': noticeId,
        id: uid,
        disabled: disabled
    }" name="firstname" placeholder="" aria-describedby="notice-DPGHTAP" id="DPGHTAP">
<!-- /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>
</div>

Обратите внимание, как теперь есть form-group и form-control добавлен класс.

Как это сделать, если все генерируется динамически?

Author: Rakesh Jesadiya, 2017-02-25

1 answers

Для класса набора для каждого поля ввода в форме доставки,

По умолчанию основной div берется из основного файла, vendor/magento/module-ui/view/frontend/web/templates/form/field.html

Вы должны переопределить указанный выше основной файл в своей теме, Для добавления класса группы форм в основной div просто переопределите файл в вашем расположении темы,

App/design/frontend/{Namespace}/{themename}/Magento_Ui/web/templates/form/field.html

Изменения:

<div class="form-group field" data-bind="visible: visible, attr: {'name': element.dataScope}, css: additionalClasses">
</div>

Все поле ввода берется из основного файла,

Vendor/magento/module-ui/view/frontend/web/templates/form/element/input.html,

Вы должны переопределить указанный выше основной файл в своей теме, Чтобы добавить класс управления формой для ввода, просто переопределите файл в вашем расположении темы,

App/design/frontend/{Namespace}/{themename}/Magento_Ui/web/templates/form/element/input.html

Код для input.html как показано ниже,

<input class="form-control input-text" type="text" data-bind="
    value: value,
    valueUpdate: 'keyup',
    hasFocus: focused,
    attr: {
        name: inputName,
        placeholder: placeholder,
        'aria-describedby': noticeId,
        id: uid,
        disabled: disabled
    }" />

Очистите кэш браузера и очистите системный кэш.

Выполните команду php bin/magento setup:static-content:deploy.

 2
Author: Rakesh Jesadiya, 2018-12-27 10:40:27