我正在使用Materialize CSS处理表单,该表单在用户填写表单时进行非常基本的验证。例如,如果用户忘记了电子邮件字段中的@
符号,则会添加名为invalid
的类,该字段在字段底部显示一条红线。我被赋予了在无效类被触发时添加另一个可视指示器(特别是警报图标)的任务。
最初,我虽然可以利用Materialise的图标后缀功能。我已经把我一直在努力的小提琴放在一起但没有成功。
基本上,我设置.material-icons显示none,然后我试图显示类,如果输入hasClass无效。这就是我的意思:
$(document).ready(function() {
if($('input').hasClass('invalid')){
$('.material-icons').show();
}
});
CSS:
@import "https://fonts.googleapis.com/icon?family=Material+Icons";
.input-field.suffix i {
position: absolute;
width: 3rem;
font-size: 2rem;
transition: color .2s;
top: 0px;
right: 0px;
}
.input-field.suffix i.active {
color: #26a69a;
}
.input-field.suffix input,
.input-field.suffix textarea {
margin-right: 3rem;
width: 92%;
width: calc(100% - 3rem);
}
.input-field.suffix textarea {
padding-top: .8rem;
}
.input-field.suffix label {
margin-right: 3rem;
}
HTML:
<form>
<div class="row">
<div class="input-field suffix col s6">
<input id="icon_prefix" type="email" class="validate">
<label for="icon_prefix">email</label>
<i class="material-icons">email</i>
</div>
</div>
</form>
也许我正在看这个错误,但相信我应该能够检测一个元素是否有一个类然后做某事。
答案 0 :(得分:1)
由于图标位于输入框旁边,您只需使用:
.material-icons {
display: none;
}
.invalid ~ .material-icons {
display: block;
}
<强> jsFiddle 强>