【发布时间】:2018-09-10 17:17:50
【问题描述】:
早安,
我正在处理带有浮动标签的表单。标签浮动很好,除了 type=email 的输入字段。用户在字段中输入文本,如果文本无效,当用户移动到下一个字段时,标签将停止浮动。
我尝试过仅使用 css 的解决方案,例如添加伪类 .mat-input-outer input:invalid + 标签,但最终会在页面加载时将该类应用于每个标签。
这是我的 jQuery:
$(function () {
$('.mat-input-outer label').click(function () {
$(this).prev('input').focus();
});
$('.mat-input-outer input').focusin(function () {
$(this).next('label').addClass('active');
});
$('.mat-input-outer input').focusout(function () {
if (!$(this).val()) {
$(this).next('label').removeClass('active');
} else {
$(this).next('label').addClass('active');
}
});
});
还有我的 HTML:
<div class="mat-input">
<div class="mat-input-outer">
<input type="text" placeholder=" " id="name" name="name" required>
<label for="Name" class="">Name</label>
<div class="border"></div>
</div>
</div>
<div class="mat-input">
<div class="mat-input-outer">
<input type="email" placeholder=" " id="email" name="email" required>
<label for="email" class="">Email Address</label>
<div class="border"></div>
</div>
</div>
最后,fiddle。
【问题讨论】: