Становится неопределенным при доступе к выбранному значению выпадающего списка

#javascript #jquery #validation #dropdown

#javascript #jquery #проверка #выпадающий

Вопрос:

В lineItemIds я получаю идентификаторы всех выпадающих списков. На первой итерации я получаю выбранное значение из первого выпадающего списка, но на остальных итерациях я получаю undefined . Здесь я проверяю динамически сгенерированные выпадающие списки:

 var submitForApproval = function(event) {
    var lineItemIds = $('input[name="lineItemIds"]').val();
    var ok = true;
    var i;
    var individualId =lineItemIds.split(",");

    for(i = 0; i <= individualId.length; i  ) {
        alert(individualId[i]);

        var value = $("select[id='" individualId[i] "'] option:selected").val();

        if (value == 'Select' ) {
            ok = false;
            break;
        }
    }

    if (!ok) {
        return;
    }
});
  

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

1. пожалуйста, покажите html-часть этого

2. Вам не нужно option:selected . Значение a select совпадает со значением выбранной опции.

3. У вас есть пробелы вокруг , в lineItemIds ? Используйте .trim() для удаления пробелов в концах.

4. Вместо [id=xxx] использования #xxx .

5. Без HTML мы можем только предполагать, что могут происходить определенные вещи. Поэтому, пожалуйста, предоставьте HTML и сделайте его фрагментом, чтобы другим было легко отлаживать

Ответ №1:

замените эту строку, она будет работать.

 var value = $("select[id='" individualId[i] "'] option:selected").val();
var value = $("#" individualId[i]).val();
  

также проверьте, что находится в вашем массиве, используя.

 console.log(individualId[i]);