I found the answer; and posting it here just in case anyone else faces
the same issue in future...

Here's all you need to do:
Attach a change/keytype listener on your input field and set the z-
index then. Make sure not to call it unnecessarily though...
something like this::
                        var pacContainerInitialized = false;
                        $('#inputField').keypress(function() {
                                if (!pacContainerInitialized) {
                                        $('.pac-container').css('z-index', 
'9999');
                                        pacContainerInitialized = true;
                                }
                        });


It looks like (after debugging using firebug...) that google creates
the auto complete drop down on the fly using the class "pac-
container". It uses a default z-index of 1000, which is less than what
jquery modal dialog uses and hence the problem!

Some posts say that by simply adding a style in your html will fix the
problem but that didn't work for me! Probably because it's getting
over written by google's code when the pac-container combo box is
actually created; am not sure... but the above method worked for me...


Thanks!
GT

On Jan 24, 11:20 pm, Gautam Tandon <gt.2...@gmail.com> wrote:
> Folks, I have spent hours trying to figure this out with no luck at all! Am
> hoping to get some answer on this forum...
>
> Here's my problem:
> I have a JQuery modal dialog that has a google places map object along with
> an autocomplete input text field.
>
> First off, the map didn't load completely, so I had to bind the modal
> dialog's "dialogopen" event (which I believe is OK... please let me know if
> you think that's not a good idea).
>
> Second, and more importantly >> When I type in the text box, the *auto
> complete combo box shows behind the dialog*! ... I have tried all sorts of
> things such as setting z-index of the input text field, setting z-index on
> .pac-container, decreasing z-index of the modal dialog box, etc.. but
> nothing seems to work.
>
> PLEASE HELP!
>
> Here's the html code (please use your google APIs key to test it out!
> thanks!):
> <html>
> <head>
> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
> <script src="js/jquery-1.6.2.min.js" ></script>
> <script src="js/jquery-ui-1.8.16.custom.min.js" ></script>
> <script src="http://maps.googleapis.com/maps/api/js?key=[USE YOUR KEY
> PLEASE]&sensor=false"></script>
> <script
> src="http://maps.googleapis.com/maps/api/js?libraries=places&sensor=false";></script>
> <link rel="stylesheet" type="text/css"
> href="css/redmond/jquery-ui-1.8.16.custom.css" />
> <style>
>     body, table { font-size: 12px }
> </style>
> </head>
> <body>
>
> <div id="test_dialog" title="test">
>     <input size="15" type="text" name="geoRadCity" id="geoRadCity" value=""
> />
>     <br/><br/>
>     <div id="map_canvas" style="width:300px; height:250px"></div>
> </div>
> <script>
>     $(function() {
>         $("#test_dialog").dialog({
>             modal: true,
>             resizable: false,
>             height: 550,
>             width: 800
>         });
>     });
>
>     var map;
>     var circle = null;
>     function initMapCanvas() {
>         var mapOptions = {
>             center: new google.maps.LatLng(37.7749295, -122.41941550000001),
>             zoom: 5,
>
>               panControl: false,
>               zoomControl: false,
>               mapTypeControl: false,
>               scaleControl: false,
>               streetViewControl: false,
>               overviewMapControl: false,
>               draggable: false,
>               disableDoubleClickZoom: true,
>
>             mapTypeId: google.maps.MapTypeId.ROADMAP
>         };
>         return new google.maps.Map(document.getElementById("map_canvas"),
> mapOptions);
>     }
>     $('#test_dialog').bind('dialogopen', function(event, ui) {
>         if (map == null) {
>             map = initMapCanvas();
>         }
>     });
>
>     var input = document.getElementById('geoRadCity');
>     var options = {
>       types: ['geocode']
>     };
>     var autocomplete = new google.maps.places.Autocomplete(input, options);
> </script>
>
> </body>
>
> Thanks!
> GT

-- 
You received this message because you are subscribed to the Google Groups 
"Google Maps JavaScript API v3" group.
To post to this group, send email to google-maps-js-api-v3@googlegroups.com.
To unsubscribe from this group, send email to 
google-maps-js-api-v3+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-maps-js-api-v3?hl=en.

Reply via email to