我正在使用 MDC-Web(Material Design Components Web)处理 Laravel 视图,并且在标签未正确附加到它们各自的输入时遇到一些问题。
<section class="mdc-card__supporting-text" style="flex-direction: row">
<div class="mdc-textfield" data-mdc-auto-init="MDCTextfield">
<input id="lang" required onkeyup="return forceLower(this)"
type="text" class="mdc-textfield__input"
value="{{ $fontmap->lang }}" aria-controls="lang-helptext">
<label class="mdc-textfield__label mdc-textfield__label--float-above" for="lang">
Language
</label>
<div class="mdc-textfield__bottom-line"></div>
</div>
<p id="lang-helptext" class="mdc-textfield-helptext" aria-hidden="true">
Please use lowercase name for language.
@if ($errors->has('lang'))
<span style="color: red">
{{ $errors->first('lang') }}
</span>
@endif
</p>
<div class="mdc-textfield" data-mdc-auto-init="MDCTextfield">
<input id="short" required type="text" onkeyup="return forceLower(this)"
maxlength="2" size="2" class="mdc-textfield__input"
value="{{ $fontmap->short }}" aria-controls="short-helptext">
<label class="mdc-textfield__label mdc-textfield__label--float-above" for="short">
Short
</label>
<div class="mdc-textfield__bottom-line"></div>
</div>
<p id="short-helptext" class="mdc-textfield-helptext" aria-hidden="true">
Please type in the two character lowercase ISO code for the langauge.
<a href="https://www.loc.gov/standards/iso639-2/php/code_list.php" target="_blank">
ISO 639-1 Chart
</a>
@if ($errors->has('short'))
<span style="color: red">
{{ $errors->first('short') }}
</span>
@endif
</p>
我的 JavaScript 看起来像这样......
<script type="text/javascript">
mdc.autoInit();
mdc.textfield.MDCTextfield.attachTo(document.querySelector('.mdc-textfield'));
function forceLower(strInput) {
return strInput.value = strInput.value.toLowerCase();
}
</script>
问题是第二个“短”mdc-textfield 附加到“lang”mdc-textfield 的底部。我希望将标签附加到正确的输入上,但我看不出我在哪里以及为什么会出现问题。
我的其他 mdc-textfield 布局都没有这个问题(我有几个可以正常工作的多字段 mdc-textfield 布局)。我怀疑错误很小而且很微妙,但是在查看代码后找不到它。
它与我的附加强制小写 javascript 函数有什么关系吗?
谢谢!