Google Place Autocomplete not showing in Bootstrap modal

19,469

Solution 1

This fixed it

<script>
    $(function () {
        var input = document.getElementById("keyword");
        var autocomplete = new google.maps.places.Autocomplete(input);

        $('#my-modal').modal('show');

    });

</script>
<style>
    .pac-container {
        z-index: 10000 !important;
    }
</style>

Solution 2

Just add

.pac-container {
    z-index: 10000 !important;
}

Solution 3

If you are still looking.

                    var pacContainerInitialized = false; 
                    $('#inputField').keypress(function() { 
                            if (!pacContainerInitialized) { 
                                    $('.pac-container').css('z-index', '9999'); 
                                    pacContainerInitialized = true; 
                            } 
                    }); 

Solution 4

For use with Angular 2+, make sure to use ng-deep

  ::ng-deep .pac-container
  {
    z-index: 99999 !important;
  }
Share:
19,469
Zoinky
Author by

Zoinky

Updated on June 27, 2022

Comments

  • Zoinky
    Zoinky about 2 years

    FIX UPDATE: It seems that the way i was initializing the box was causing issues here is what fixed it

     <script>
        $(function () {
            var input = document.getElementById("keyword");
            var autocomplete = new google.maps.places.Autocomplete(input);
    
            $('#my-modal').modal('show');
    
        });
    
    </script>
    <style>
        .pac-container {
            z-index: 10000 !important;
        }
    </style>
    

    UPDATE: I have updated the code to be very simple, the reason this http://jsfiddle.net/g8vxmLn9/1/ works is because its using older bootstrap and jquery so I assume because I am using newer i am having the problems.

    I simply just want to show a autocomplete box in a bootstrap(3.3) model and have it show the results as you type.

    <!DOCTYPE html>
    <html>
    <head>
    <meta name="viewport" content="width=device-width" />
    <title>Test</title>
    <link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-1q8mTJOASx8j1Au+a5WDVnPi2lkFfwwEAa8hDDdjZlpLegxhjVME1fgjWPGmkzs7" crossorigin="anonymous">
    <script src="https://code.jquery.com/jquery-2.2.2.min.js" integrity="sha256-36cp2Co+/62rEAAYHLmRCPIych47CvdM+uTBJwSzWjI=" crossorigin="anonymous"></script>
    <script src="https://maps.googleapis.com/maps/api/js?libraries=places">   </script>
    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js" integrity="sha384-0mSbJDEHialfmuBBQP6A4Qrprq5OVfW37PRR3j5ELqxss1yVqOtnepnHVP9aJ7xS" crossorigin="anonymous"></script>
    </head>
    <body>
    <div>
        <div id="my-modal" class="modal" aria-hidden="true">
            <div class="modal-dialog">
                <div class="modal-content">
                    <input name="keyword" id="keyword" type="text" />
                </div>
    
            </div>
        </div>
    </div>
    <script>
        $(function () {
            $("#my-modal").modal({
                show: false
            }).on("shown", function () {
                var input = document.getElementById("keyword");
                var autocomplete = new google.maps.places.Autocomplete(input);
    
            });
            $('#my-modal').modal('show');
        });
    </script>
    </body>
    </html>