작동하지 않습니다 내 코드입니다 :JQuery와 HTML() 메소드는 다음
$(function() {
var region = $('#region');
var city = $('#city');
var pickedRegionId = region.find(':selected').val();
var options;
if (pickedRegionId === '') {
console.log('region is empty, html() and disable');
city.html('');
city.attr('disabled', true);
}
region.change(function(){
console.log('region is changed');
pickedRegionId = $(this).val();
if (pickedRegionId !== '') {
city.html('');
console.log('loading cities');
getCities(pickedRegionId);
}
});
function getCities (regionId) {
city.attr('disabled', true);
city.html('<option>Loading...</option>');
$.get(
'/ajax/get_cities',
'region_id='+regionId,
function (responce) {
if (responce.result === 'success') {
$(responce.cities).each(function(){
options += '<option value="'+$(this).attr('id')+'">'+$(this).attr('city')+'</option>';
});
city.html(options);
city.attr('disabled', false);
}
}, 'json'
);
}
});
페이지가로드 모두 괜찮 때, 나는 어떤 지역을 선택하고 아약스 데이터로 채워 도시와 선택은. 그러나 다른 지역을 선택하면 도시의 데이터가 새로운 데이터로 확장됩니다.
그래서 두 지역 (신구도)의 도시가 있습니다. 그리고 몇 번이나 다른 지역을 고르 느냐에 상관없이 도시 선택에 새로운 데이터를 추가하는 것입니다. 코드에서 모두 괜찮아 보이는 지역 변경에 넣어 .html ('') 그래서 그것은받은 값을 삽입하기 전에 비워야합니다. 그러나 나는 그 버그가 무엇인지 알 수 없다.
합니까 당신은 할 필요가 없습니다 $ (responce.cities) .each 문 앞에 "option"값을 다시 초기화 하시겠습니까? –