Показать сообщение отдельно
  #1 (permalink)  
Старый 07.09.2014, 14:39
Профессор
Отправить личное сообщение для imedia Посмотреть профиль Найти все сообщения от imedia
 
Регистрация: 20.05.2014
Сообщений: 292

помогите пожалуйста разобраться плавлюсь
Пробую яснее изложить проблему.
У меня есть форма в которую добавляются зависимые списки стран по нажатию кнопки добавить и предполагается что поочередно снизу вверх эти списки можно удалять кнопкой удалить
Вот часть кода отвечающая за добавление новых списков с комментарием, вопрос после кода.
function add_new_resort_func(){
//при нажатии на кнопку добавить происходит событие
$('.add_resort_btn').click(function(){
//определяем номер в классе блока в котором нажата кнопка добавить  
var main_par =$('.add_resort_select')
var last_block=main_par.children().last()
var classList = last_block.attr('class').split(/\s+/);
var numer=classList[1].charAt( classList[1].length - 1 );
numer=Number(numer);
//добавляем последующий блок для зависимых списков
var n=numer+1
$('.add_resort_select').append('<div class="blk resort_select_blk_'+n+'"></div>');
//аяксом вставляем в этот блок селект со странами
 $.ajax({
          type: 'POST',
		  dataType:'json',
          url: '/functions_ajax/get_countries/',
          success: function(data) {
		  $('.resort_select_blk_'+n+'').append('<div class="resorts_number"><h3>'+(n+1)+'</h3></div>');
		  $('.resort_select_blk_'+n+'').append('<select class="country_select" name="country_'+n+'"><option>Выберите страну для курорта</option></select><input type="button" class="del_button del_resort_btn" value="X">');
		  $('.add_resort_btn').remove();
			$.each(data, function(key, val) {  
			$('select[name=country_'+n+']').append('<option value="'+val.id+'">'+val.name+'</option>');
			})
        //эта функция добавляет курорты по выбранной стране
			cnt_change()
        //далее предполагаем что необходимо удалить последний блок с зависимыми селектами при нажатии на кнопку удалить
			$('.del_resort_btn').on( "click", function() {
$(this).parent('.blk').siblings(':last').append('<input type="button" class="add_button add_resort_btn" value="+">');
$(this).parent('.blk').remove();
//вот здесь инициализируем главную функцию снова чтобы при нажатии на кнопку добавить добавлялись блоки с зависимыми селектами тут и возникает вопрос
add_new_resort_func()
});
		
          },
          error:  function(xhr, str){
          alert('Возникла ошибка: ' + xhr.responseCode);
          }
}); 
});		
}

почему при многократном нажатии на кнопку удалить, тоесть поочередном удалении многих блоков с зависимыми селектами, а затем при нажатии на кнопку добавить появляется столько блоков с зависимыми селектами сколько раз они были удалены, требуется чтобы один блок добавлялся при нажатии на кнопку добавить
Демонстрация работы формы http://interclient.net/admin_tours/create_tourдва раза пролистнуть вправо затем выбирать австралия

Последний раз редактировалось imedia, 08.09.2014 в 12:24.
Ответить с цитированием