Magento 2:将 "autocomplete" 属性添加到结帐字段
Magento 2: Add "autocomplete" attribute to checkout fields
我们 运行 我们在 Magento CE2.4.1 上的网站。目前,结帐字段具有以下属性:
<input class="input-text" type="text" data-bind="
value: value,
valueUpdate: 'keyup',
hasFocus: focused,
attr: {
name: inputName,
placeholder: placeholder,
'aria-describedby': getDescriptionId(),
'aria-required': required,
'aria-invalid': error() ? true : 'false',
id: uid,
disabled: disabled
}" name="lastname" aria-required="true" aria-invalid="false" id="KR2W89N">
我想为每个字段添加 autocomplete 属性。像这样:
<input class="input-text" type="text" autocomplete="name" data-bind="[...]" name="lastname" aria-required="true" aria-invalid="false" id="KR2W89N">
我检查了以下文件以查看是否有实现此目的的方法:
magento/module-checkout/view/frontend/web/template/shipping-address/form.html
magento/module-checkout/Block/CheckoutLayoutProcessor.php
至于 form.html:
我想不出一种方法来获取特定的自动完成值作为每个字段的变量。
至于 CheckoutLayoutProcessor.php:
我在这个线程的帮助下创建了一个小模块:
How to auto fill the shipping address field in Checkout in Magento 2.2
我能够e。 G。更改每个字段的标签(仅作为测试)。但是,我找不到为每个结帐字段定义任何其他属性/选项的方法。
无论如何,我正在查看正确的文件吗?如果有任何帮助,我将不胜感激。
我不想自己自动填充这些字段。我只想添加属性,以便浏览器正确自动填充字段。目前,street.0 的输入也将添加到 street.1.
如果无法获得所需的解决方案:是否可以只为 street.1[=44= 设置 autocomplete="off" ] 字段?
谢谢!
亚历克斯
我现在寻求一个可能不优雅的解决方案。在LayoutProcessor.php中(请参考link中的初始post)我简单定义了一个自定义模板:
'config' => [
'customScope' => 'shippingAddress',
'template' => 'ui/form/field',
'elementTmpl' => 'Vendor_Module/form/element/customtemplate'
],
在我刚刚硬编码的这个自定义模板中:
autocomplete="off"
这样显然也可以通过为每个字段创建单独的模板来为每个字段设置单独的值。不过,这似乎有点过分了。
以防万一这可能对其他人有帮助,我暂时将此答案标记为已接受的答案。一旦有人提供更专业的方法,我将非常乐意将她/他的 post 更改为可接受的答案。
我们 运行 我们在 Magento CE2.4.1 上的网站。目前,结帐字段具有以下属性:
<input class="input-text" type="text" data-bind="
value: value,
valueUpdate: 'keyup',
hasFocus: focused,
attr: {
name: inputName,
placeholder: placeholder,
'aria-describedby': getDescriptionId(),
'aria-required': required,
'aria-invalid': error() ? true : 'false',
id: uid,
disabled: disabled
}" name="lastname" aria-required="true" aria-invalid="false" id="KR2W89N">
我想为每个字段添加 autocomplete 属性。像这样:
<input class="input-text" type="text" autocomplete="name" data-bind="[...]" name="lastname" aria-required="true" aria-invalid="false" id="KR2W89N">
我检查了以下文件以查看是否有实现此目的的方法:
magento/module-checkout/view/frontend/web/template/shipping-address/form.html
magento/module-checkout/Block/CheckoutLayoutProcessor.php
至于 form.html: 我想不出一种方法来获取特定的自动完成值作为每个字段的变量。
至于 CheckoutLayoutProcessor.php: 我在这个线程的帮助下创建了一个小模块:
How to auto fill the shipping address field in Checkout in Magento 2.2
我能够e。 G。更改每个字段的标签(仅作为测试)。但是,我找不到为每个结帐字段定义任何其他属性/选项的方法。
无论如何,我正在查看正确的文件吗?如果有任何帮助,我将不胜感激。
我不想自己自动填充这些字段。我只想添加属性,以便浏览器正确自动填充字段。目前,street.0 的输入也将添加到 street.1.
如果无法获得所需的解决方案:是否可以只为 street.1[=44= 设置 autocomplete="off" ] 字段?
谢谢! 亚历克斯
我现在寻求一个可能不优雅的解决方案。在LayoutProcessor.php中(请参考link中的初始post)我简单定义了一个自定义模板:
'config' => [
'customScope' => 'shippingAddress',
'template' => 'ui/form/field',
'elementTmpl' => 'Vendor_Module/form/element/customtemplate'
],
在我刚刚硬编码的这个自定义模板中:
autocomplete="off"
这样显然也可以通过为每个字段创建单独的模板来为每个字段设置单独的值。不过,这似乎有点过分了。
以防万一这可能对其他人有帮助,我暂时将此答案标记为已接受的答案。一旦有人提供更专业的方法,我将非常乐意将她/他的 post 更改为可接受的答案。