vendredi 24 juin 2016

AJax does not work with bootstrap-select


I found flask-jquery-ajax example where the user selects an item from the vehicle "Make" drop down menu, the vehicle "Model" drop down menu is populated by making an AJAX request for a list of models for the make selected. I tried to replace the drop-down menus by bootstrap-select and as soon as I include class="selectpicker form-control" in the second drop-down menu it does not get any more populated after the first drop-down has been chosen. This is the HTML template: <!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <title>Flask Jquery AJAX Drop Down Menu Example</title> <link rel="stylesheet" type="text/css" href="//netdna.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css" > <link rel="stylesheet" type="text/css" href=//cdnjs.cloudflare.com/ajax/libs/bootstrap-select/1.6.2/css/bootstrap-select.min.css> <link rel="stylesheet" href="{{ url_for('static', filename='web.css') }}"> <!-- Custom styles for this template --> <link href="http://getbootstrap.com/examples/non-responsive/non-responsive.css" rel="stylesheet"> </head> <body> <h1>Select Vehicle</h1> <form class="form-horizontal" action="/" method="POST" > <div class="input-group"> <span class="input-group-addon">Make:</span> {{ form.make(id="make_select", class="selectpicker form-control") }} </div> <div class="input-group"> <span class="input-group-addon">Model:</span> {{ form.model(id="model_select", class="selectpicker form-control") }} </div> <button type="submit">Submit</button> </form> {% if chosen_make %} <h2>You selected:</h2> <ul> <li>Make ID: {{ chosen_make }}</li> <li>Model ID: {{ chosen_model }}</li> </ul> {% endif %} <script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js"></script> <script type="text/javascript" src="//netdna.bootstrapcdn.com/bootstrap/3.2.0/js/bootstrap.min.js"></script> <script type="text/javascript" src="//cdnjs.cloudflare.com/ajax/libs/bootstrap-select/1.6.2/js/bootstrap-select.min.js"></script> <script> $('.selectpicker').selectpicker(); </script> <script src="/assets/vehicle.js"></script> </body> </html> This is the JavaScript code responsible for populating the drop-down menus: $("#make_select").change(function() { var make_id = $(this).find(":selected").val(); var request = $.ajax({ type: 'GET', url: '/models/' + make_id + '/', }); request.done(function(data){ var option_list = [["", "--- Select One ---"]].concat(data); $("#model_select").empty(); for (var i = 0; i < option_list.length; i++) { $("#model_select").append( $("<option></option>").attr( "value", option_list[i][0]).text(option_list[i][1]) ); } }); }); Why does class="selectpicker form-control" from bootstrap-select cause that the second drop-down menu get not anymore populated?

Aucun commentaire:

Enregistrer un commentaire