#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);