Easily extend form controls with Django input, by adding text, buttons, or button groups on either side of textual inputs, custom selects, and custom file inputs.
Example
Default
<div class= "form-group" >
<div class= "input-group" >
<div class= "input-group-prepend" >
<span class= "input-group-text" id= "basic-addon1" > @</span>
</div>
<input type= "text" class= "form-control" placeholder= "Username" aria-label= "Username" aria-describedby= "basic-addon1" >
</div>
</div>
<div class= "form-group" >
<div class= "input-group" >
<input type= "text" class= "form-control" placeholder= "Recipient's username" aria-label= "Recipient's username" aria-describedby= "basic-addon2" >
<div class= "input-group-append" >
<span class= "input-group-text" id= "basic-addon2" > @example.com</span>
</div>
</div>
</div>
<div class= "form-group" >
<label class= "form-control-label" for= "basic-url" > Your vanity URL</label>
<div class= "input-group" >
<div class= "input-group-prepend" >
<span class= "input-group-text" id= "basic-addon3" > https://example.com/users/</span>
</div>
<input type= "text" class= "form-control" id= "basic-url" aria-describedby= "basic-addon3" >
</div>
</div>
<div class= "form-group" >
<div class= "input-group" >
<div class= "input-group-prepend" >
<span class= "input-group-text" > $</span>
</div>
<input type= "text" class= "form-control" aria-label= "Amount (to the nearest dollar)" >
<div class= "input-group-append" >
<span class= "input-group-text" > .00</span>
</div>
</div>
</div>
<div class= "form-group" >
<div class= "input-group" >
<div class= "input-group-prepend" >
<span class= "input-group-text" > With textarea</span>
</div>
<textarea class= "form-control" aria-label= "With textarea" ></textarea>
</div>
</div>
Merged
You can choose to merge input group elements by removing the border between them using the .input-group-merge
modifier class.
<div class= "form-group" >
<div class= "input-group input-group-merge" >
<div class= "input-group-prepend" >
<span class= "input-group-text" id= "basic-addon1" > @</span>
</div>
<input type= "text" class= "form-control" placeholder= "Username" aria-label= "Username" aria-describedby= "basic-addon1" >
</div>
</div>
<div class= "form-group" >
<div class= "input-group input-group-merge" >
<input type= "text" class= "form-control" placeholder= "Recipient's username" aria-label= "Recipient's username" aria-describedby= "basic-addon2" >
<div class= "input-group-append" >
<span class= "input-group-text" id= "basic-addon2" > @example.com</span>
</div>
</div>
</div>
<div class= "form-group" >
<label class= "form-control-label" for= "basic-url" > Your vanity URL</label>
<div class= "input-group input-group-merge" >
<div class= "input-group-prepend" >
<span class= "input-group-text" id= "basic-addon3" > https://example.com/users/</span>
</div>
<input type= "text" class= "form-control" id= "basic-url" aria-describedby= "basic-addon3" >
</div>
</div>
<div class= "form-group" >
<div class= "input-group input-group-merge" >
<div class= "input-group-prepend" >
<span class= "input-group-text" > $</span>
</div>
<input type= "text" class= "form-control" aria-label= "Amount (to the nearest dollar)" >
<div class= "input-group-append" >
<span class= "input-group-text" > .00</span>
</div>
</div>
</div>
<div class= "form-group" >
<div class= "input-group input-group-merge" >
<div class= "input-group-prepend" >
<span class= "input-group-text" > With textarea</span>
</div>
<textarea class= "form-control" aria-label= "With textarea" ></textarea>
</div>
</div>
Sizing
<div class= "form-group" >
<div class= "input-group input-group-sm" >
<div class= "input-group-prepend" >
<span class= "input-group-text" id= "inputGroup-sizing-sm" > Small</span>
</div>
<input type= "text" class= "form-control" aria-label= "Sizing example input" aria-describedby= "inputGroup-sizing-sm" >
</div>
</div>
<div class= "form-group" >
<div class= "input-group" >
<div class= "input-group-prepend" >
<span class= "input-group-text" id= "inputGroup-sizing-default" > Default</span>
</div>
<input type= "text" class= "form-control" aria-label= "Sizing example input" aria-describedby= "inputGroup-sizing-default" >
</div>
</div>
<div class= "form-group" >
<div class= "input-group input-group-lg" >
<div class= "input-group-prepend" >
<span class= "input-group-text" id= "inputGroup-sizing-lg" > Large</span>
</div>
<input type= "text" class= "form-control" aria-label= "Sizing example input" aria-describedby= "inputGroup-sizing-lg" >
</div>
</div>
Checkboxes and radios
<div class= "form-group" >
<div class= "input-group" >
<div class= "input-group-prepend" >
<div class= "input-group-text" >
<input type= "checkbox" aria-label= "Checkbox for following text input" >
</div>
</div>
<input type= "text" class= "form-control" aria-label= "Text input with checkbox" >
</div>
</div>
<div class= "form-group" >
<div class= "input-group" >
<div class= "input-group-prepend" >
<div class= "input-group-text" >
<input type= "radio" aria-label= "Radio button for following text input" >
</div>
</div>
<input type= "text" class= "form-control" aria-label= "Text input with radio button" >
</div>
</div>
<div class= "input-group" >
<div class= "input-group-prepend" >
<span class= "input-group-text" > First and last name</span>
</div>
<input type= "text" aria-label= "First name" class= "form-control" >
<input type= "text" aria-label= "Last name" class= "form-control" >
</div>
Multiple addons
<div class= "input-group mb-3" >
<div class= "input-group-prepend" >
<span class= "input-group-text" > $</span>
<span class= "input-group-text" > 0.00</span>
</div>
<input type= "text" class= "form-control" aria-label= "Dollar amount (with dot and two decimal places)" >
</div>
<div class= "input-group" >
<input type= "text" class= "form-control" aria-label= "Dollar amount (with dot and two decimal places)" >
<div class= "input-group-append" >
<span class= "input-group-text" > $</span>
<span class= "input-group-text" > 0.00</span>
</div>
</div>
<div class= "input-group mb-3" >
<div class= "input-group-prepend" >
<button class= "btn btn-outline-primary" type= "button" id= "button-addon1" > Button</button>
</div>
<input type= "text" class= "form-control" placeholder= "" aria-label= "Example text with button addon" aria-describedby= "button-addon1" >
</div>
<div class= "input-group mb-3" >
<input type= "text" class= "form-control" placeholder= "Recipient's username" aria-label= "Recipient's username" aria-describedby= "button-addon2" >
<div class= "input-group-append" >
<button class= "btn btn-outline-primary" type= "button" id= "button-addon2" > Button</button>
</div>
</div>
<div class= "input-group mb-3" >
<div class= "input-group-prepend" id= "button-addon3" >
<button class= "btn btn-outline-primary" type= "button" > Button</button>
<button class= "btn btn-outline-primary" type= "button" > Button</button>
</div>
<input type= "text" class= "form-control" placeholder= "" aria-label= "Example text with two button addons" aria-describedby= "button-addon3" >
</div>
<div class= "input-group" >
<input type= "text" class= "form-control" placeholder= "Recipient's username" aria-label= "Recipient's username with two button addons" aria-describedby= "button-addon4" >
<div class= "input-group-append" id= "button-addon4" >
<button class= "btn btn-outline-primary" type= "button" > Button</button>
<button class= "btn btn-outline-primary" type= "button" > Button</button>
</div>
</div>