How to create a toggle button in Bootstrap

前端 未结 10 548
自闭症患者
自闭症患者 2021-01-30 00:57

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 t

相关标签:
10条回答
  • 2021-01-30 01:00

    If you don't mind changing your HTML, you can use the data-toggle attribute on <button>s. See the Single toggle section of the button examples:

    <button type="button" class="btn btn-primary" data-toggle="button">
        Single toggle
    </button>
    
    0 讨论(0)
  • 2021-01-30 01:06

    Here this very usefull For Bootstrap Toggle Button . Example in code snippet!! and jsfiddle below.

      <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
        <link href="https://gitcdn.github.io/bootstrap-toggle/2.2.2/css/bootstrap-toggle.min.css" rel="stylesheet">
        <script src="https://gitcdn.github.io/bootstrap-toggle/2.2.2/js/bootstrap-toggle.min.js"></script>
        <link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css" rel="stylesheet">
        <input id="toggle-trigger" type="checkbox" checked data-toggle="toggle">
        <button class="btn btn-success" onclick="toggleOn()">On by API</button>
    <button class="btn btn-danger" onclick="toggleOff()">Off by API</button>
    <button class="btn btn-primary" onclick="getValue()">Get Value</button>
    <script>
      //If you want to change it dynamically
      function toggleOn() {
        $('#toggle-trigger').bootstrapToggle('on')
      }
      function toggleOff() {
        $('#toggle-trigger').bootstrapToggle('off')  
      }
      //if you want get value
      function getValue()
      {
       var value=$('#toggle-trigger').bootstrapToggle().prop('checked');
       console.log(value);
      }
    </script>
    I showed you a few examples above. I hope it helps. Js Fiddle is here Source code is avaible on GitHub.

    Update 2020 For Bootstrap 4

    I recommended bootstrap4-toggle in 2020.

    <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css" integrity="sha384-Vkoo8x4CGsO3+Hhxv8T/Q5PaXtkKtu6ug5TOeNV6gBiFeWPGFN9MuhOf23Q9Ifjh" crossorigin="anonymous">
    
    <script src="https://code.jquery.com/jquery-3.4.1.slim.min.js" integrity="sha384-J6qa4849blE2+poT4WnyKhv5vZF5SrPo0iEjwBvKU7imGFAV0wwj1yYfoRSJoZ+n" crossorigin="anonymous"></script>
    <script src="https://cdn.jsdelivr.net/npm/popper.js@1.16.0/dist/umd/popper.min.js" integrity="sha384-Q6E9RHvbIyZFJoft+2mJbHaEWldlvI9IOYy5n3zV9zzTtmI3UksdQRVvoxMfooAo" crossorigin="anonymous"></script>
    <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/js/bootstrap.min.js" integrity="sha384-wfSDF2E50Y2D1uUdj0O3uMBJnjuUD4Ih7YwaYd1iqfktj0Uod8GCExl3Og8ifwB6" crossorigin="anonymous"></script>
    
    <link href="https://cdn.jsdelivr.net/gh/gitbrent/bootstrap4-toggle@3.6.1/css/bootstrap4-toggle.min.css" rel="stylesheet">
    <script src="https://cdn.jsdelivr.net/gh/gitbrent/bootstrap4-toggle@3.6.1/js/bootstrap4-toggle.min.js"></script>
    
    <input id="toggle-trigger" type="checkbox" checked data-toggle="toggle" data-onstyle="success">
    <button class="btn btn-success" onclick="toggleOn()">On by API</button>
    <button class="btn btn-danger" onclick="toggleOff()">Off by API</button>
    <button class="btn btn-primary" onclick="getValue()">Get Value</button>
    
    <script>
      //If you want to change it dynamically
      function toggleOn() {
        $('#toggle-trigger').bootstrapToggle('on')
      }
      function toggleOff() {
        $('#toggle-trigger').bootstrapToggle('off')  
      }
      //if you want get value
      function getValue()
      {
       var value=$('#toggle-trigger').bootstrapToggle().prop('checked');
       console.log(value);
      }
    </script>

    0 讨论(0)
  • 2021-01-30 01:10

    Initial answer from 2013

    An excellent (unofficial) Bootstrap Switch is available.

    <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.

    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.

    0 讨论(0)
  • 2021-01-30 01:11

    Bootstrap 4 solution

    bootstrap 4 ships built-in toggle. Here is the documentation. https://getbootstrap.com/docs/4.3/components/forms/#switches

    0 讨论(0)
  • 2021-01-30 01:13

    You can use the CSS Toggle Switch library. Just include the CSS and program the JS yourself: http://ghinda.net/css-toggle-switch/bootstrap.html

    0 讨论(0)
  • 2021-01-30 01:18

    If you want to keep a small code base, and you are only going to be needing the toggle button for a small part of the application. I would suggest instead maintain you're javascript code your self (angularjs, javascript, jquery) and just use plain CSS.

    Good toggle button generator: https://proto.io/freebies/onoff/

    0 讨论(0)
提交回复
热议问题