Используя чистый JavaScript, вы пытаетесь изменить параметр по умолчанию для поля выбора, но с неперехваченной ошибкой TypeError: невозможно прочитать свойство '0' из undefined - PullRequest
0 голосов
/ 12 июля 2020

Используя vanilla JavaScript Я пытаюсь изменить параметр по умолчанию для поля выбора.

var temp = "Approve";
var mySelect = document.querySelector('[id^="select_leave_action_"]').id;

for(var i, j = 0; i = mySelect.options[j]; j++) {
    if(i.value == temp) {
        mySelect.selectedIndex = j;
        break;
    }
}

Когда я выполняю приведенный выше код, я получаю следующую ошибку:

Uncaught TypeError: Невозможно прочесть свойство 0 для undefined в: 4: 39`

Что не так с моим кодом?

Я пытался использовать getElementsByClassName вместо querySelector, но проблема осталась прежней.

1 Ответ

1 голос
/ 12 июля 2020

Удалить .id.

Идентификатор является строкой и не имеет свойства options. Вы хотите сохранить сам элемент select (а не его идентификатор) для доступа к его параметрам.

(Также еще проще просто установить mySelect.value = temp, единственное отличие от вашего текущего метода будет заключаться в том, как обрабатывается случай где temp не существует в существующих параметрах. В зависимости от браузера, установка значения напрямую может отображать пустое поле, если параметр подгонки не существует.)

...