简体   繁体   English

如何使用 Bootstrap 和 jQuery 在输入字段内显示错误图标?

[英]How to display error icon inside input field using Bootstrap and jQuery?

I have a simple form, Name and Email .我有一个简单的表格NameEmail I am getting validation error proper but not getting icon inside the input field.我收到正确的验证错误,但没有在输入字段内获得图标。 I am getting cross icon top right corner.Would you help me out in this?我在右上角看到十字图标。你能帮我解决这个问题吗?

I am getting output我得到输出在此处输入图片说明

I need output like this我需要这样的输出

在此处输入图片说明

 $('#myform').validate({ rules: { name: { minlength: 3, maxlength: 15, required: true }, email: { required: true, email: true }, }, highlight: function(element) { var id_attr = "#" + $( element ).attr("id") + "1"; $(element).closest('.form-group').removeClass('has-success').addClass('has-error'); $(id_attr).removeClass('glyphicon-ok').addClass('glyphicon-remove'); }, unhighlight: function(element) { var id_attr = "#" + $( element ).attr("id") + "1"; $(element).closest('.form-group').removeClass('has-error').addClass('has-success'); $(id_attr).removeClass('glyphicon-remove').addClass('glyphicon-ok'); }, errorElement: 'span', errorClass: 'help-block', errorPlacement: function(error, element) { if(element.length) { error.insertAfter(element); } else { error.insertAfter(element); } } });
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script> <link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet"/> <script src="//ajax.aspnetcdn.com/ajax/jquery.validate/1.14.0/jquery.validate.min.js" type="text/javascript"></script> <form class="form-horizontal" id="myform"> <input type="text" name="name" placeholder="name" id="name"> <span class="glyphicon form-control-feedback" id="name1"></span> <input type="email" name="email" id="email" placeholder="email"><span id="status"></span> <span class="glyphicon form-control-feedback" id="email1"></span> </form>

Just merge the styling with your CSS and remove the important part.只需将样式与您的 CSS 合并并删除重要部分。 Also a little tweak in your markup.还对您的标记进行了一些调整。

 $('#myform').validate({ rules: { name: { minlength: 3, maxlength: 15, required: true }, email: { required: true, email: true }, }, highlight: function(element) { var id_attr = "#" + $( element ).attr("id") + "1"; $(element).closest('.form-group').removeClass('has-success').addClass('has-error'); $(id_attr).removeClass('glyphicon-ok').addClass('glyphicon-remove'); }, unhighlight: function(element) { var id_attr = "#" + $( element ).attr("id") + "1"; $(element).closest('.form-group').removeClass('has-error').addClass('has-success'); $(id_attr).removeClass('glyphicon-remove').addClass('glyphicon-ok'); }, errorElement: 'span', errorClass: 'help-block', errorPlacement: function(error, element) { if(element.length) { error.insertAfter(element); } else { error.insertAfter(element); } } });
 .field-container { float: left; position: relative; } .form-control-feedback { line-height: 20px; font-size: 20px; line-height: 20px !important; height: 20px !important; } .glyphicon-ok { color: #4FAC34; } .glyphicon-remove { color: #FF0000; }
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script> <link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet"/> <script src="//ajax.aspnetcdn.com/ajax/jquery.validate/1.14.0/jquery.validate.min.js" type="text/javascript"></script> <form class="form-horizontal" id="myform"> <div class="field-container"> <input type="text" name="name" placeholder="name" id="name"> <span class="glyphicon form-control-feedback" id="name1">x</span> </div> <div class="field-container"> <input type="email" name="email" id="email" placeholder="email"><span id="status"></span> <span class="glyphicon form-control-feedback" id="email1">x</span> </div> </form>

Use input-groups to link an icon to an inputfield, then just hide the span by default and show it in your validation function.使用输入组将图标链接到输入字段,然后默认隐藏跨度并将其显示在验证函数中。

<div class="input-group">
      <input type="text" class="form-control">
      <span class="input-group-addon"><i class="glyphicon glyphicon-times"></i></span>
    </div>

Working fiddle: https://jsfiddle.net/084w9en1/1/工作小提琴: https : //jsfiddle.net/084w9en1/1/

Use cross icon of bootstrap使用引导程序的十字图标

HTML: HTML:

<div class="form-group">
     <input type="text" name="name"  placeholder="name" id="name">
     <span class="glyphicon glyphicon-remove cross" aria-hidden="true"></span>
 </div>

CSS: CSS:

.form-group{
    position:relative;
 }

 span.glyphicon-remove.cross{
    position: absolute;
    transform: translate(-50%, -50%);
    top: 50%;// put the proper position of that cross from top
    right: 0;// put the proper position of that cross from right
 }

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM