Dropdown option only setting selected after alert

Dropdown option only setting selected after alert

  1. $(document).ready(function() {
          
                                 
                 
                 
                  $("#city").one("click", function() { 
                 
                  var selectedCtgry=document.getElementById("state").value;
                  var selectedCtgry1=document.getElementById("city").value;
                 
                  if(selectedCtgry!=null && selectedCtgry!='Select')
                  {
                                 var d1 = null;   
                                 // alert("in ready");
                                 $.ajax({
                                          url : 'UpdateDevoteeHelperServlet',
                                          data: {state : selectedCtgry},
                                          type: 'get',                  
                                          dataType:'json',
                                          async: false,                  
                                          success : function(data) { 
                                            
                                              d1= data;
                                             
                                           }
                                });
                               
                                if(d1 != null)
                                {
                                    var $options = $("#city");
                                    $options.empty();
                                    $.each(d1, function(key, value) {
                                      
                                       $options.append($("<option />").val(key).text(value));
                                      
                                       
                                    });
                                   
                                      alert(typeof selectedCtgry);  // after this alert
                                      
                                    $("#state").val(selectedCtgry);
                                    $("#city").val(selectedCtgry1);
                                }
                            
                     }
                });
               
             });   














































  2. On clicking above dropdown selected value only gets selected after putting an alert. I think this is some timing issue.

How do I get the selected value set in dropdown without the need for alert?