复选框中不需要的隐藏字段和属性缺失(TYPO3、Powermail)
Unwanted hidden field and missing for attribut in checkbox (TYPO3, Powermail)
我对 TYPO3/Powermail 有疑问。我试图将自定义复选框图像和 运行 添加到 IE 问题中。我找到了另一个基于 TYPO3 的网站,其自定义复选框在 IE 上也能正常工作。
奇怪的是,我的 html 表单结构(由 TYPO3/Powermail 生成)看起来不一样。
这是我的复选框 html:
如您所见,我插入了一个隐藏类型的字段,不知道为什么。我的标签没有 "for" 属性。
这里的表单域(TYPO3/Powermail 也不错)看起来不错:
这里我们没有st运行ge隐藏输入框,标签里有"for"属性
有人可以帮忙吗?
两个安装的模板不同。在文件夹 EXT:powermail/Resources/Private 中检查随 EXT:powermail 提供的原始模板和部分。如果您使用自己的模板,请添加所有需要的字段和选项。
例如,将 for
属性添加到单选按钮的 <label>
部分:<label for="powermail_field_{field.marker}_{index.cycle}">
。
在 EXT:powermail (7.3.1) 的较新版本中,文件 Resources/Private/Partials/Form/Field/Radio.html 看起来像:
{namespace vh=In2code\Powermail\ViewHelpers}
<div class="powermail_fieldwrap powermail_fieldwrap_type_radio powermail_fieldwrap_{field.marker} {field.css} {settings.styles.framework.fieldAndLabelWrappingClasses}">
<f:render partial="Form/FieldLabel" arguments="{_all}" />
<div class="{settings.styles.framework.fieldWrappingClasses}">
<f:for each="{field.modifiedSettings}" as="setting" iteration="index">
<div class="{settings.styles.framework.radioClasses} {vh:Validation.ErrorClass(field:field, class:'powermail_field_error')}">
<label>
<f:form.radio
property="{field.marker}"
value="{setting.value}"
checked="{vh:Misc.PrefillMultiField(field:field, mail:mail, cycle:index.cycle)}"
id="powermail_field_{field.marker}_{index.cycle}"
additionalAttributes="{vh:Validation.ValidationDataAttribute(field:field, iteration:index)}"
class="powermail_radio" />
<vh:string.escapeLabels>{setting.label}</vh:string.escapeLabels>
</label>
</div>
</f:for>
<f:if condition="{settings.validation.client}">
<div class="powermail_field_error_container powermail_field_error_container_{field.marker}"></div>
</f:if>
</div>
Resources/Private/Partials/Form/FieldLabel.html:
{namespace vh=In2code\Powermail\ViewHelpers}
<f:comment>
Partial file for the HTML-structure of nearly all field labels
</f:comment>
<f:if condition="{field.css} != 'nolabel'">
<label for="powermail_field_{field.marker}" class="{settings.styles.framework.labelClasses}" title="{field.description}">
<vh:string.escapeLabels>{field.title}</vh:string.escapeLabels><f:if condition="{field.mandatory}"><span class="mandatory">*</span></f:if>
</label>
</f:if>
我对 TYPO3/Powermail 有疑问。我试图将自定义复选框图像和 运行 添加到 IE 问题中。我找到了另一个基于 TYPO3 的网站,其自定义复选框在 IE 上也能正常工作。
奇怪的是,我的 html 表单结构(由 TYPO3/Powermail 生成)看起来不一样。
这是我的复选框 html:
如您所见,我插入了一个隐藏类型的字段,不知道为什么。我的标签没有 "for" 属性。
这里的表单域(TYPO3/Powermail 也不错)看起来不错:
这里我们没有st运行ge隐藏输入框,标签里有"for"属性
有人可以帮忙吗?
两个安装的模板不同。在文件夹 EXT:powermail/Resources/Private 中检查随 EXT:powermail 提供的原始模板和部分。如果您使用自己的模板,请添加所有需要的字段和选项。
例如,将 for
属性添加到单选按钮的 <label>
部分:<label for="powermail_field_{field.marker}_{index.cycle}">
。
在 EXT:powermail (7.3.1) 的较新版本中,文件 Resources/Private/Partials/Form/Field/Radio.html 看起来像:
{namespace vh=In2code\Powermail\ViewHelpers}
<div class="powermail_fieldwrap powermail_fieldwrap_type_radio powermail_fieldwrap_{field.marker} {field.css} {settings.styles.framework.fieldAndLabelWrappingClasses}">
<f:render partial="Form/FieldLabel" arguments="{_all}" />
<div class="{settings.styles.framework.fieldWrappingClasses}">
<f:for each="{field.modifiedSettings}" as="setting" iteration="index">
<div class="{settings.styles.framework.radioClasses} {vh:Validation.ErrorClass(field:field, class:'powermail_field_error')}">
<label>
<f:form.radio
property="{field.marker}"
value="{setting.value}"
checked="{vh:Misc.PrefillMultiField(field:field, mail:mail, cycle:index.cycle)}"
id="powermail_field_{field.marker}_{index.cycle}"
additionalAttributes="{vh:Validation.ValidationDataAttribute(field:field, iteration:index)}"
class="powermail_radio" />
<vh:string.escapeLabels>{setting.label}</vh:string.escapeLabels>
</label>
</div>
</f:for>
<f:if condition="{settings.validation.client}">
<div class="powermail_field_error_container powermail_field_error_container_{field.marker}"></div>
</f:if>
</div>
Resources/Private/Partials/Form/FieldLabel.html:
{namespace vh=In2code\Powermail\ViewHelpers}
<f:comment>
Partial file for the HTML-structure of nearly all field labels
</f:comment>
<f:if condition="{field.css} != 'nolabel'">
<label for="powermail_field_{field.marker}" class="{settings.styles.framework.labelClasses}" title="{field.description}">
<vh:string.escapeLabels>{field.title}</vh:string.escapeLabels><f:if condition="{field.mandatory}"><span class="mandatory">*</span></f:if>
</label>
</f:if>