Input Magento2签出表单:如何在字段中显示占位符属性值?

Input Magento2签出表单:如何在字段中显示占位符属性值?,input,placeholder,magento2,onepage-checkout,Input,Placeholder,Magento2,Onepage Checkout,早上好 我正在定制Magento 2中的checkout One页面。现在,我试图在shipping address表单中显示占位符而不是标签,但到目前为止没有成功。我希望有人能帮助我 干杯,乔治 更新: 在控制台中,我可以看到一个变量被赋予元素输入的属性占位符 <input class="input-text" type="text" data-bind=" value: value, valueUpdate: 'keyup', hasFocus: focused

早上好

我正在定制Magento 2中的checkout One页面。现在,我试图在shipping address表单中显示占位符而不是标签,但到目前为止没有成功。我希望有人能帮助我

干杯,乔治

更新:

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

<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中显示标签名。


对我糟糕英语的歉意

占位符:占位符
更改为
占位符:标签
如果这对您有用,该元素的定义如下:
/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
}" />

标准方式,

从供应商/magento/module ui/view/frontend/web/templates/form/element/复制所有html文件 在
app/design/frontend///Magento\u Ui/web/templates/form/element/

然后将所有更改
占位符:占位符
更改为
占位符:标签
,如所述

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

 php bin/magento setup:static-content:deploy
看看魔法

注意:如果您已从github签出,请尝试从中复制


答案现在在磁电机2文档中: 这些模板就是前面答案中提到的模板。 magento ui模块中的模板用于签出以外的其他地方

在自定义模块目录中,创建一个新的/view/frontend/layout/checkout_index_index.xml文件。在此文件中,添加类似以下内容:

。。。
...

%供应商模块%/form/element/%您的模板%
您可以将
占位符
项添加到字段的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>

Magento_Ui/js/form/element/abstract
联系方式
用户界面/表单/字段
ui/表单/元素/输入
地址
地址
地址
20
真的

您需要更具体一些,并向我们展示您尝试的一些代码,以便我们能够帮助您。非常感谢@Amit。我已经做到了。它就像一个符咒。我不能对你的答案投票,因为没有足够的积分我们可以删除重叠的标签字段吗?我希望我能与M2结账的前端开发人员见面,并给他们讲几句话……我们如何才能添加不同的类似世界的标签“name”和占位符“insert your name”?要定制账单地址,您需要扩展magner/Checkout/Block/Checkout/LayoutProcessor.php,因为在我的版本(2.1.5)中,所有值都是硬编码的。希望这些信息能对你有所帮助
<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>