когда я пытаюсь повторно выбрать значение dirrert через ajax
в первый раз функция делает правильные вещи
через два или более раза, когда я изменил параметр выбора num1
другой выбор num2 должен быть обновлен, выбрав что-то еще, параметр val
но не кратно все опции, которые мне нужны, или вообще не выбран ни один
Расскажите, что должно произойти.
когда я меняю один элемент выбора
выберите 2, выбрав другой вариант, основной вариант, который я получаю через ajax
Расскажите, что происходит вместо этого.
делаю что-нибудь для развлечения {
$ ("# один вариант [значение = 1] '). attr (' selected ', true);
}
$ ("# один"). val (1) .trigger ("выбрано: обновлено");
один вал 1
тогда
делаю что-нибудь для развлечения {
$ ("# один вариант [значение = 1] '). attr (' selected ', true);
$ ("# один вариант [значение = 3] '). attr (' selected ', true);
}
$ ("# один"). val (1) .trigger ("выбрано: обновлено");
тогда, может быть, мне нечего выбирать позже, иногда позже ???
Я не знаю, что делать, чтобы он мог выбрать правильный вариант, который мне нужен после?
извините за мой бедный английский: sob:
Если я правильно понимаю, вы добавляете новые параметры в select с помощью запроса ajax, а затем запускаете chosen:updated
чтобы Chosen отражал изменения?
Пожалуйста , настроить скрипку , чтобы продемонстрировать problen, и тогда мы сможем решить , если это ошибка или просто проблема с реализацией.
СПАСИБО ЗА REP
НЕ НРАВИТСЯ .. не обновлять список опций
список опций такой же
но значение не так
каждый раз, когда я хочу изменить выбранное значение триггера
когда я первый раз значение выбранных элементов было правильным
но пойдет не так, когда позже
я не могу получить правильное значение элемента select ....
при первой загрузке функция была правильной, нужно было выбрать только один вариант
затем еще раз
это должно быть так
Привет, blankhang,
Ваша проблема может быть решена этим.
что ты делаешь:
$ ("# один вариант [значение = 1] '). attr (' selected ', true);
$ ("# один вариант [значение = 3] '). attr (' selected ', true);
$ ("# один"). val (1) .trigger ("выбрано: обновлено");
что нужно сделать
$ ("# один вариант [значение = 1] '). attr (' selected ', true);
$ ("# один вариант [значение = 3] '). attr (' selected ', true);
$ ("# один"). trigger ("selected: updated");
не давать никакого значения при запуске обновления;
У меня возникла та же проблема после обновления состояния выбора параметров множественного выбора с помощью JS, а затем попытки обновить Chosen, чтобы отобразить выбор. Я сделал скрипку, демонстрирующую это поведение:
https://jsfiddle.net/5wbzxg27/
Есть 3 кнопки:
Каждый параметр отображается в поле «Выбрано» только один раз, даже если вы нажмете одну и ту же кнопку (и обновите ее) несколько раз . Сценарий работает нормально, выбранное состояние исходных опций выбора изменяется нормально, но выбранный показывает опции только в первый раз.
Надеюсь это поможет.
@cinemazealot попробуйте следующий код:
$("#mySelect").chosen({
placeholder_text_multiple: 'Something',
});
$('button#all').on('click', function() {
$('#mySelect option').attr('selected', false); // selects all
var options = [];
for (var i=0; i < $('#mySelect option').length; i++){
options.push($('#mySelect option')[i].value);
};
$('#mySelect').val(options);
$("#mySelect").trigger("chosen:updated"); // updates chosen
return false; // returns false not to post the surrounding form
});
$('button#first').on('click', function() {
$('#mySelect option').attr('selected', false); // clears all
var options = [];
for (var i=0; i < $('#mySelect optgroup[label="first"] option').length; i++){
options.push($('#mySelect optgroup[label="first"] option')[i].value);
};
$('#mySelect').val(options);
$("#mySelect").trigger("chosen:updated"); // updates chosen
return false; // returns false not to post the surrounding form
});
$('button#second').on('click', function() {
$('#mySelect option').attr('selected', false); // clears all
var options = [];
for (var i=0; i < $('#mySelect optgroup[label="second"] option').length; i++){
options.push($('#mySelect optgroup[label="second"] option')[i].value);
};
$('#mySelect').val(options);
$("#mySelect").trigger("chosen:updated"); // updates chosen
return false; // returns false not to post the surrounding form
});
Это может показаться неуклюжим и большим, но, похоже, работает
@pashaUSA ты лучший! :) Извините за запоздалую реакцию, у меня были другие запущенные проекты. Но ваше решение просто делает то, что должно. Большое спасибо! :)
Самый полезный комментарий
Привет, blankhang,
Ваша проблема может быть решена этим.
что ты делаешь:
$ ("# один вариант [значение = 1] '). attr (' selected ', true);
$ ("# один вариант [значение = 3] '). attr (' selected ', true);
$ ("# один"). val (1) .trigger ("выбрано: обновлено");
что нужно сделать
$ ("# один вариант [значение = 1] '). attr (' selected ', true);
$ ("# один вариант [значение = 3] '). attr (' selected ', true);
$ ("# один"). trigger ("selected: updated");
не давать никакого значения при запуске обновления;