Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to create a toggle button in Bootstrap

I originally created a web app in HTML, CSS and JavaScript, then was asked to create it again in Bootstrap too. I've done it all fine, but I had toggle buttons in the web app that have changed back to radio (originally checkbox) buttons instead of the toggle buttons I had originally.

The code for the buttons is:

<label>   Notifications   <span class='toggle'>     <input type='radio'       class='notifications'       name='notifications'       id='notifications' />   </span> </li> <label>   Preview   <span class='toggle'>     <input type='radio'       class='preview'       name='preview'       id='preview' />   </span> </li> 

and the JavaScript and CSS files that the HTML page is linked to are:

<script src = 'jqtouch.js'></script> <script src="jquery.js"></script> <script src="js/bootstrap.js"></script> <link href="css/bootstrap.css" rel="stylesheet"> <link href="css/bootstrap-responsive.css" rel="stylesheet"> 

Is there a way to change the code so I can get the toggle button back?

like image 608
Megan Sime Avatar asked Nov 22 '12 11:11

Megan Sime


People also ask

What is Bootstrap data-toggle?

The data-toggle is an HTML-5 data attribute defined in Bootstrap. The advantage of using this is that, you can select a class or an id and hook up the element with a particular widget.


1 Answers

Initial answer from 2013

An excellent (unofficial) Bootstrap Switch is available.

Classic 2013 Switch

<input type="checkbox" name="my-checkbox" checked> $("[name='my-checkbox']").bootstrapSwitch(); 

It uses radio types or checkboxes as switches. A type attribute has been added since V.1.8.

Source code is available on Github.

Note from 2018

I would not recommend to use those kind of old Switch buttons now, as they always seemed to suffer of usability issues as pointed by many people.

Please consider having a look at modern Switches like this one from the React Component framework (not Bootstrap related, but can be integrated in Bootstrap grid and UI though).

Other implementations exist for Angular, View or jQuery.

Modern 2018 Switch

import '../assets/index.less' import React from 'react' import ReactDOM from 'react-dom' import Switch from 'rc-switch'  class Switcher extends React.Component {   state = {     disabled: false,   }    toggle = () => {     this.setState({       disabled: !this.state.disabled,     })   }    render() {     return (       <div style={{ margin: 20 }}>         <Switch           disabled={this.state.disabled}           checkedChildren={'开'}           unCheckedChildren={'关'}         />         </div>       </div>     )   } }  ReactDOM.render(<Switcher />, document.getElementById('__react-content')) 

Native Bootstrap Switches

See ohkts11's answer below about the native Bootstrap switches.

like image 183
smonff Avatar answered Sep 27 '22 20:09

smonff