Как добавить пустую опцию в ajax

#javascript #jquery #ajax #dropdownchoice

Вопрос:

У меня есть данные, полученные с помощью AJAX. Мне нужно добавить пустую опцию» — — — — -«. Как я могу это сделать? Я перепробовал много примеров, но не могу найти способ. Итак, эта константа взята из поданной формы Django!Это страны, районы, поселения. Мне нужна перед этими данными ПУСТАЯ метка в поле.

 $('<option>').val('').text('').appendTo(#reg);
  const $dis = $('#id_dis');
  const $com = $('#id_comm');
  const $sett = $('#id_sett');

  const r_choices = choicesRegistry['id_reg'];
  const d_choices = choicesRegistry['id_dis'];
  const comm_choices = choicesRegistry['id_comm'];
  const sett_choices = choicesRegistry['id_sett'];


$reg.on('change', function() {
  // d_choices.disable();
  // c_choices.disable();
  console.log(this.value)
  if (this.value === '') {
    d_choices.disable();
  } else {
    $.ajax({
      method: 'get',
      url: '/contry',
      data: {
        level_1: this.value,
        level: 2
      },
      success: (data) => {
        // data.unshift(''),
        console.log(data)
        // d_choices.setChoiceByValue(data, 'code', true);
        d_choices.setChoices(data, 'code', 'name', true);
        d_choices.setChoiceByValue('code', 'name')
        console.log(d_choices)


        console.log(d_choices)
        d_choices.enable();
      },
    });
  }
});
 

Комментарии:

1. Этот вопрос нуждается в большем контексте. Где вы пытаетесь увидеть пустой вариант? Я предполагаю, что это как-то связано с d_choices переменной, но что в ней содержится?

2. setChoices и setChoiceByValue это не стандартные функции JavaScript, это похоже на сторонний виджет. Можете ли вы сослаться на документацию?

3. Почему имеет значение, что вы получили данные из AJAX? Добавление динамических параметров в раскрывающийся список происходит одинаково независимо от того, откуда были получены данные.

4. github.com/Choices-js/Choices#setchoicebyvaluevalue Это документация

5. @RoryMcCrossan в d_choices страны из формы поля Django , мне нужны перед этим страны, ПУСТОЕ поле — опция пустое

Ответ №1:

setChoices() Метод принимает массив объектов, определяющих свойства value и label option создаваемых элементов. Таким образом, вы можете добавить новый объект к этому объекту, чтобы добавить требуемую опцию «пусто» .:

 // inside success handler:
data.unshift({ code: '', name: '-----' });
d_choices.setChoices(data, 'code', 'name', true);