Dynamically create Bootstrap alerts box through JavaScript

前端 未结 10 889
有刺的猬
有刺的猬 2020-12-13 12:20

I\'m using Bootstrap 2.0 for my project and I would like to dynamically add Bootstrap alert box in my page (http://twitter.github.com/bootstrap/javascript.html#alerts). I wa

相关标签:
10条回答
  • 2020-12-13 12:41

    I found that AlertifyJS is a better alternative and have a Bootstrap theme.

    alertify.alert('Alert Title', 'Alert Message!', function(){ alertify.success('Ok'); });
    

    Also have a 4 components: Alert, Confirm, Prompt and Notifier.

    Exmaple: JSFiddle

    0 讨论(0)
  • 2020-12-13 12:43

    Try this (see a working example of this code in jsfiddle: http://jsfiddle.net/periklis/7ATLS/1/)

    <input type = "button" id = "clickme" value="Click me!"/>
    <div id = "alert_placeholder"></div>
    <script>
    bootstrap_alert = function() {}
    bootstrap_alert.warning = function(message) {
                $('#alert_placeholder').html('<div class="alert"><a class="close" data-dismiss="alert">×</a><span>'+message+'</span></div>')
            }
    
    $('#clickme').on('click', function() {
                bootstrap_alert.warning('Your text goes here');
    });
    </script>​
    

    EDIT: There are now libraries that simplify and streamline this process, such as bootbox.js

    0 讨论(0)
  • 2020-12-13 12:46
    function bootstrap_alert() {
            create = function (message, color) {
                $('#alert_placeholder')
                    .html('<div class="alert alert-' + color
                        + '" role="alert"><a class="close" data-dismiss="alert">×</a><span>' + message
                        + '</span></div>');
            };
            warning = function (message) {
                create(message, "warning");
            };
            info = function (message) {
                create(message, "info");
            };
            light = function (message) {
                create(message, "light");
            };
            transparent = function (message) {
                create(message, "transparent");
            };
            return {
                warning: warning,
                info: info,
                light: light,
                transparent: transparent
            };
        }
    
    0 讨论(0)
  • 2020-12-13 12:50
    /**
      Bootstrap Alerts -
      Function Name - showalert()
      Inputs - message,alerttype
      Example - showalert("Invalid Login","alert-error")
      Types of alerts -- "alert-error","alert-success","alert-info","alert-warning"
      Required - You only need to add a alert_placeholder div in your html page wherever you want to display these alerts "<div id="alert_placeholder"></div>"
      Written On - 14-Jun-2013
    **/
    
      function showalert(message,alerttype) {
    
        $('#alert_placeholder').append('<div id="alertdiv" class="alert ' +  alerttype + '"><a class="close" data-dismiss="alert">×</a><span>'+message+'</span></div>')
    
        setTimeout(function() { // this will automatically close the alert and remove this if the users doesnt close it in 5 secs
    
    
          $("#alertdiv").remove();
    
        }, 5000);
      }
    
    0 讨论(0)
  • 2020-12-13 12:56

    Found this today, made a few tweaks and combined the features of the other answers while updating it to bootstrap 3.x. NB: This answer requires jQuery.

    In html:

    <div id="form_errors" class="alert alert-danger fade in" style="display:none">
    

    In JS:

    <script>
    //http://stackoverflow.com/questions/10082330/dynamically-create-bootstrap-alerts-box-through-javascript
    function bootstrap_alert(elem, message, timeout) {
      $(elem).show().html('<div class="alert"><button type="button" class="close" data-dismiss="alert" aria-hidden="true">&times;</button><span>'+message+'</span></div>');
    
      if (timeout || timeout === 0) {
        setTimeout(function() { 
          $(elem).alert('close');
        }, timeout);    
      }
    };
    </script>​
    

    Then you can invoke this either as:

    bootstrap_alert('#form_errors', 'This message will fade out in 1 second', 1000)
    bootstrap_alert('#form_errors', 'User must dismiss this message manually')
    
    0 讨论(0)
  • 2020-12-13 12:56

    just recap:

    $(document).ready(function() {
    
        $('button').on( "click", function() {
    
          showAlert( "OK", "alert-success" );
    
        } );
    
    });
    
    function showAlert( message, alerttype ) {
    
        $('#alert_placeholder').append( $('#alert_placeholder').append(
          '<div id="alertdiv" class="alert alert-dismissible fade in ' +  alerttype + '">' +
              '<a class="close" data-dismiss="alert" aria-label="close" >×</a>' +
              '<span>' + message + '</span>' + 
          '</div>' )
        );
    
        // close it in 3 secs
        setTimeout( function() {
            $("#alertdiv").remove();
        }, 3000 );
    
    }
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.0/css/bootstrap.min.css" />
    
    <script  src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.0/js/bootstrap.min.js"></script>
            
    <button onClick="" >Show Alert</button>
          
    <div id="alert_placeholder" class="container" ></div>

    codepen

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