Обновление выпадающего списка select2 - PullRequest
0 голосов
/ 03 января 2019

Я пытаюсь динамически изменить параметр раскрывающегося списка select2.

Я искал на форуме и сумел изменить выбранный параметр, но он виден только при нажатии на раскрывающийся список и просмотревесь список.Заранее извиняюсь за то, что не был лучшим кодировщиком.

function changeSelectOption(designSelVal) //designSelVal = 9

{   
    var opts = document.getElementById("design").options;
    for (var opt, i = 0; opt = opts[i]; i++) 
    {
    if (opt.value == design) 
        {
            document.getElementById("design").selectedIndex = i;
            break;
        }
    }
}

/ * это показывает, что правильно изменилось со значения 2 на 9 * /

<option value="2" >Text Only</option>
<option value="4" >Heart Arrow</option>
<option value="9" selected>Heart</option>

Видимая опция остается «Только текст», а не «Сердце», как будто окно выбора нуждается в обновлении.

1 Ответ

0 голосов
/ 03 января 2019

Вы пропускаете условие if:

должно быть

if (opt.value == designSelVal)

function changeSelectOption(designSelVal) //designSelVal = 9

    {
     
      var opts = document.getElementById("design").options;
      
      for (var opt, i = 0; opt = opts[i]; i++) {
        
        if (opt.value == designSelVal) {
          document.getElementById("design").selectedIndex = i;

          break;
        } 
      }
    }

    changeSelectOption(9);
    <select id="design">
      <option value="2" selected>Text Only</option>
      <option value="4">Heart Arrow</option>
      <option value="9" >Heart</option>
    </select>
...