Bootstrap 4 Form Input With Icon For Validation
Answer :
Bootstrap 4 doesn't include icons (glyphicons are gone), and there are now just 2 validation states (is-valid
and is-invalid
) that control display of the valid-feedback
and invalid-feedback
text.
With a little extra CSS, you can position an icon inside the input (to the right), and control its' display using is-valid
or is-invalid
on the form-control
input. Use a font lib like fontawesome for the icons. I created a new feedback-icon
class that you can add to the valid/invalid-feedback
.
.valid-feedback.feedback-icon, .invalid-feedback.feedback-icon { position: absolute; width: auto; bottom: 10px; right: 10px; margin-top: 0; }
HTML
<div class="form-group position-relative"> <label for="input2">Valid with icon</label> <input type="text" class="form-control is-valid" id="input2"> <div class="valid-feedback feedback-icon"> <i class="fa fa-check"></i> </div> <div class="invalid-feedback feedback-icon"> <i class="fa fa-times"></i> </div> </div>
Demo of input validation icons
Demo with working validation
.valid-feedback.feedback-icon, .invalid-feedback.feedback-icon { position: absolute; width: auto; bottom: 10px; right: 10px; margin-top: 0; }
<!DOCTYPE html> <html> <head> <meta name="viewport" content="width=device-width, initial-scale=1"> <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css"> <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css"> <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.9/umd/popper.min.js"></script> <script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.min.js"></script> </head> <body> <div class="container"> <div class="form-group position-relative"> <label for="input2">Valid with icon</label> <input type="text" class="form-control is-valid" id="input2"> <div class="valid-feedback feedback-icon"> <i class="fa fa-check"></i> </div> <div class="invalid-feedback feedback-icon"> <i class="fa fa-times"></i> </div> </div> </div>
Notice that the containing form-group
is position:relative
using the position-relative
class.
Form validation icons are built-in Bootstrap 4.3.1, see documentation here : https://getbootstrap.com/docs/4.3/components/forms/#custom-styles
For a client-side validation, you can use ParsleyJS plugin. See a demo here : https://jsfiddle.net/djibe89/tu0ap111/
Fake code
Comments
Post a Comment