1

「場所を入力してください」テキストボックスから都市と国を解析しようとしています。Google Placesオートコンプリートは場所の取得に優れていますが、すべての結果に国と都市があるわけではありません(たとえば、「ロシア」と入力すると、都市がリストされていない最上位の結果として「ロシア」が表示されます)。ユーザータイプが保存される場所はどこでも、都市と国の部分は別々に保存する必要があります。

すべてのオートコンプリートの結果に都市と国の両方を含めるように強制する方法はありますが、これら2つだけに限定しないでください。(たとえば、「ロシア」と入力すると、「モスクワ、ロシア」または「115 Xストリート、モスクワ、ロシア」などが表示されます)

4

1 に答える 1

0

私の解決策

<html>
<head>
  <meta charset="utf-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">

  <title>Place Autocomplete</title>

  <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/css/bootstrap.min.css">

  <script src="https://code.jquery.com/jquery-1.11.2.js" type="text/javascript"></script>

  <script src="https://maps.googleapis.com/maps/api/js?sensor=false&amp;libraries=places&amp;language=en" type="text/javascript"></script>

  <script type="text/javascript">
    
      var autocomplete; 
      var place;

      function initialize() 
      {
        var options       = {types: ['(cities)']};
        var input         = document.getElementById('searchTextField');
        
        autocomplete  = new google.maps.places.Autocomplete(input, options);

        google.maps.event.addListener(autocomplete, 'place_changed', function() {
          fillInPlace();
        });
      }

      function fillInPlace() {
        place = autocomplete.getPlace();
        var $address = $(place['adr_address']);
        $('#resultTextField').val($address.text());
      }

      $(document).on('ready', function(){
          $("#searchTextField").on('focusout', function(e){
              setTimeout(function() {
                    $("#searchTextField").val('');
              }, 1000);
          });
      })
      
      google.maps.event.addDomListener(window, 'load', initialize);

  </script>
</head>

<body>
  <form class='form'>
    <div class="form-group">
      <div class="col-xs-12">
        <label for="searchTextField">City</label>
      </div>
      <div class="col-xs-12">
        <input id="searchTextField" type="text" placeholder="Search" autocomplete="on" class='form-control pull-left' style='width:40%; margin-right:3px;'>
        <input id="resultTextField" type="text" placeholder="" autocomplete="on" class='form-control pull-left' disabled='disabled' style='width:55%'>
      </div>
    </div>
  </form>
</body>
</html>

于 2015-03-29T18:44:25.797 に答える