2016-08-08 3 views
1

Google지도 자동 완성 스크립트와 제대로 작동하지만 사용자가 드롭 다운 목록에서 아무도 선택하지 않은 경우 입력을 지우는 방법은 무엇입니까? 예를 들어Google지도 자동 완성 - 아무 것도 선택하지 않은 경우 입력을 지우십시오.

: 현재 상황 : 사용자가 지금 intup "새"를 입력하고 목록에서 "뉴욕"을 참조하지만 (입력 외부의 아무 곳이나 클릭) 선택하지 않고, 값 "새"가. 원하는 항목 : 목록에있는 항목이 모두 선택되어 있지 않으므로 사용자가 목록에서 "New"를 입력하고 "New York"을 선택하지만 선택하지 않으면 (입력 외부의 아무 곳이나 클릭) intup에 값이 있습니다.

내 현재 코드 :

<input id="autocomplete2" placeholder="Enter your address" onFocus="initAutocomplete2()" type="text"> 
<script> 
    function initAutocomplete2() { 
     autocomplete2 = new google.maps.places.Autocomplete(
      /** @type {!HTMLInputElement} */(document.getElementById('autocomplete2')), 
      {types: ['(cities)']}); 

    } 
</script> 

답변

5

당신은 값이 선택되었다는 사실을 저장하는 변수가 필요하고 누군가가 초점을 맞출 때/입력을 흐리게합니다 - 필요한 경우 입력 값을 다시 설정 .

var selected = false; 
 

 
function initAutocomplete2() { 
 
    autocomplete2 = new google.maps.places.Autocomplete(
 
    /** @type {!HTMLInputElement} */(document.getElementById('autocomplete2')), 
 
    {types: ['(cities)']}); 
 
    
 
    autocomplete2.addListener('place_changed', function() { 
 
    selected = true 
 
    }); 
 
} 
 
$('#autocomplete2').on('focus', function() { 
 
    selected = false; 
 
    }).on('blur', function() { 
 
    if (!selected) { 
 
     $(this).val(''); 
 
    } 
 
    });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<script src="https://maps.googleapis.com/maps/api/js?libraries=places"></script> 
 
<input id="autocomplete2" placeholder="Enter your address" onFocus="initAutocomplete2()" type="text">

+0

감사합니다 : 여기

은 예입니다! 그것은 나를 위해 일하고있다. – Alex

관련 문제