Форум программистов, компьютерный форум, киберфорум
jQuery
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/8: Рейтинг темы: голосов - 8, средняя оценка - 5.00
56 / 54 / 33
Регистрация: 05.11.2014
Сообщений: 259

Не работает функция val() у select-элемента из массива

16.08.2015, 16:22. Показов 1701. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Не понимаю, почему не работает этот код. На форме несколько select (количество может быть разное), необходимо сравнить выбранные значения (ключи) всех списков и выдать сообщение о совпадении с отменой сабмита формы.

JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
 $('#form').submit(function() {
        var lists = $('.section select');
 
        var values = [];
        if (lists.length > 1) {
            for (i = 0; i < lists.length; i++) {
                for (j = 0; j < i; j++) {
                    if (values[j] == lists[i].val()) {
                        alert('Разделы дублируются. Выберете другой раздел или удалите один из них.');
                        return false;
                    }
                }
                values[i] = lists[i].val();
            }
        }
        return true;
});
Добавлено через 5 минут
В логе ошибка, что функция val() не определена. Почему - не понятно.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
16.08.2015, 16:22
Ответы с готовыми решениями:

Select option[val] не работает
Посмотрите этот код и скажите почему может не срабатывать сам код http://jsfiddle.net/Hey4/GxCbb/3/ сайт...

Не работает функция val
Вообщем не могу понять, почему не работает функции val. Вот код:unit Unit1; interface uses Windows, Messages, SysUtils,...

Функция, возвращающая адрес максимального элемента массива, работает неправильно
Задание: написать функцию которая возвращает адрес максимального элемента массива. https://ibb.co/ZSYJw7T Код: #include...

6
152 / 151 / 67
Регистрация: 25.02.2015
Сообщений: 493
17.08.2015, 11:21
А значение value точно задано у тех html элементов, что вы пытаетесь проверить?
0
56 / 54 / 33
Регистрация: 05.11.2014
Сообщений: 259
17.08.2015, 14:21  [ТС]
Цитата Сообщение от Karssen Посмотреть сообщение
А значение value точно задано у тех html элементов, что вы пытаетесь проверить?
Точно задано. В любом случае функция val() должна выполниться и вернуть пустое значение, если такого нет.

На данный момент заменил на

JavaScript
1
lists[i].value
Так работает, но получается смешение кода. Не красиво.
0
152 / 151 / 67
Регистрация: 25.02.2015
Сообщений: 493
17.08.2015, 16:13
Попробуйте вместо val() использовать prop('value'). И вообще хтмл код взглянуть бы неплохо
0
56 / 54 / 33
Регистрация: 05.11.2014
Сообщений: 259
17.08.2015, 18:12  [ТС]
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<form id="form" method="post">
        <div class="blank section" data-count="3">
                            <select class="dropDown" name="Advertisement[sections][0]" id="Advertisement_sections_0">
                                  <option value="3">Одежда</option>
                                  <option value="2">Продукты питания</option>
                                  <option value="4">Услуги</option>
                             </select>
                            <select class="dropDown" name="Advertisement[sections][1]" id="Advertisement_sections_0">
                                  <option value="3">Одежда</option>
                                  <option value="2">Продукты питания</option>
                                  <option value="4">Услуги</option>
                            </select>
                           <button class="removeSection" data-num="1">X</button>
          </div>
          <input class="btn primary profileBtn" name="yt1" value="Добавить" type="submit">
</form>
HTML генерируется движком. Часть отсюда я удалил для наглядности.
0
152 / 151 / 67
Регистрация: 25.02.2015
Сообщений: 493
17.08.2015, 20:21
Судя по коду вашему
JavaScript
1
var lists = $('.section select');
В вашу выборку попадают select'ы, которые находятся внутри дива с классом section. То есть в lists массив селектов, а не опций. И потом вы пытаетесь узнать val селекта, которого у него нет. А я так понимаю что вы хотите сравнивать value у option. Тогда вам нужен массив детей
JavaScript
1
var opts = lists[i].children('option')
. И уже у них брать значения val.
И еще
JavaScript
1
2
for (i = 0; i < lists.length; i++) {
                for (j = 0; j < i; j++) {
При такой записи элемент с 0 индексом не обработается как я понимаю. По условию второго цикла j < i. Если i = 0 то первая итерация пропустится и начнется i = 1.
0
56 / 54 / 33
Регистрация: 05.11.2014
Сообщений: 259
17.08.2015, 21:18  [ТС]
Karssen, как я сказал, мне нужно обнаружить выпадающие списки с одинаковыми выбранными значениями. Если мы ищем по option, тогда нужно отсеивать по option:selected. И результат должен быть аналогичный, судя по этому уроку. А именно:

JavaScript
1
2
3
4
5
$("#my_select option:selected").val();
сокращенно:
$("#my_select :selected").val();
или:
$("select#my_select").val();
С нулевым индексом да, можно начинать с 1, но я ведь сохраняю их в массив values для последующей сверки.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
17.08.2015, 21:18
Помогаю со студенческими работами здесь

Не выводится val() из тега <select>
Беда с val() в &lt;select&gt;. Вот код: &lt;div class=&quot;blockTxt&quot;&gt; &lt;div class=&quot;btnFood&quot;&gt; &lt;select class=&quot;quantity-select&quot;&gt; ...

.val() Не забирает текстовые значения из select
Здравствуйте! Делаю бд на пхп и javascript. На странице ajax.base.php есть 3 селекта. В первый нужно передать фамилии из таблицы...

Функция JS при выборе элемента списка select
Здравствуйте. Не получается запустить функцию при выборе элемента списка select. Есть вот такой код, но он почему-то работает только в...

Не работает функция замены последнего отрицательного элемента в массиве на три элемента, равных заданному значению
//Функция поиска последнего отрицательного элемента в массиве и замена его на три элемента, равных заданному значению void...

Функция Val
Всем здравствуйте, Есть символьное поле в таблице с цифравыми значениями длиной 20. Нужно преобразовать данное поле в числовое той же...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru