Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 输入无效值时,在输入字段中添加图标_Jquery_Html_Css_Materialize - Fatal编程技术网

Jquery 输入无效值时,在输入字段中添加图标

Jquery 输入无效值时,在输入字段中添加图标,jquery,html,css,materialize,Jquery,Html,Css,Materialize,我正在使用MaterializeCSS制作一个表单,它在用户填写表单时进行非常基本的验证。例如,如果用户忘记了电子邮件字段中的@符号,则会添加一个名为invalid的类,该类在字段底部显示一条红线。我的任务是在激活无效类时添加另一个可视指示器(特别是警报图标) 起初,我认为我可以利用Materialize的图标后缀特性。我整理了一把小提琴,但一直没有成功 本质上,我将.material图标设置为不显示,然后如果输入hasClass无效,我将尝试显示该类。我的意思是: $(document).re

我正在使用MaterializeCSS制作一个表单,它在用户填写表单时进行非常基本的验证。例如,如果用户忘记了电子邮件字段中的
@
符号,则会添加一个名为
invalid
的类,该类在字段底部显示一条红线。我的任务是在激活无效类时添加另一个可视指示器(特别是警报图标)

起初,我认为我可以利用Materialize的图标后缀特性。我整理了一把小提琴,但一直没有成功

本质上,我将.material图标设置为不显示,然后如果输入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>

电子邮件
电子邮件
也许我看错了,但我相信我应该能够检测元素是否有类,然后做些什么


由于图标位于输入框旁边,您只需使用:

.material-icons {
  display: none;
}

.invalid ~ .material-icons {
  display: block;
}

幻想曲!最好的解决方案往往是最简单的。格拉齐!