Magento2结账表单:如何在字段中显示占位符属性值?

时间:2016-02-15 10:05:51

标签: input placeholder magento2 onepage-checkout

Goodmorning Stackoverflow,

我正在Magento 2中自定义结帐页面。现在我试图在发货地址表单中显示占位符而不是标签,但直到现在都没有成功。我希望有人可以帮助我

干杯,豪尔赫

更新:

在控制台中,我可以看到一个变量赋予元素输入的属性占位符。

<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">

现在我想知道是否有一种方法可以通过后端修改这个变量,所以我可以在占位符attr中显示标签名称。 See screenshot

我的英语不好的Apoligies

5 个答案:

答案 0 :(得分:5)

标准方式,

vendor/magento/module-ui/view/frontend/web/templates/form/element/ 复制所有html文件 在 的 app/design/frontend/<Vendor>/<theme>/Magento_Ui/web/templates/form/element/

然后将Akis Verillis提及的所有更改placeholder: placeholder更改为placeholder: label

现在您需要通过以下代码部署静态文件:

 php bin/magento setup:static-content:deploy

看到魔力。

注意: 如果您有来自github的结帐,请尝试从

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

答案 1 :(得分:3)

placeholder: placeholder更改为placeholder: label

答案 2 :(得分:2)

答案现在在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目录中的所有文件。

答案 3 :(得分:1)

如果这对你有用,那个元素的定义是: /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
}" />

答案 4 :(得分:0)

您可以将<?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle"> <stroke android:width="1dp" android:color="@android:color/black" /> <solid android:color="@android:color/transparent" /> </shape> 项添加到字段的layout.xml文件中。就是这样:

placeholder