Форум программистов, компьютерный форум, киберфорум
JavaScript
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.94/34: Рейтинг темы: голосов - 34, средняя оценка - 4.94
 Аватар для Дмитрий Дмитрий
1 / 1 / 2
Регистрация: 17.09.2016
Сообщений: 450

Присвоить несколько значений одному option из select

14.03.2017, 09:47. Показов 7009. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем здрасти, в js не очень то я, поэтому нужна помощь.
Есть два combobox: combobox1 и combobox2.
В combobox1 есть множество option с value, вопрос такой, как назначит одному option из combobox1 несколько значений value, чтобы при выборе из combobox2 определенного option подставлялось только то value из combobox1 которое соответствует выбранному option из combobox2?

Например:
<select name="combobox1" size="1" id="Combobox1">
<option value="100" value="200" value="300">А</option>
<option value="200" value="300" value="100">В</option>

<select name="combobox2" size="1" id="Combobox2">
<option>1</option>
<option>2</option>
<option>3</option>

Если выбираем 1 из Combobox2 то берется число 100 из А Combobox1, если выбираем 2 из Combobox2 то берется число 200 из А Combobox1 и т.д.

Я так понимаю что прописать несколько value в одном option нельзя, да и наверное коряво это, возможно что типо создать переменные в js с массивами из чисел первого value (100, 200), второго value (200, 300) и третьего value (300, 100), но как в js это все подключить?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
14.03.2017, 09:47
Ответы с готовыми решениями:

Присвоить несколько значений одному полю
Подскажите плиз, вот у меня есть БД, где есть сотрудники, и им присваиваеи имена, фамилии, должности, и телефоны. Так вот как сделать, что...

Несколько select option
Вот фрагмент кода &lt;select name = &quot;table&quot;&gt; &lt;option&gt;emp&lt;/option&gt; &lt;option&gt;product&lt;/option&gt; &lt;option&gt;product_trade_point&lt;/option&gt; ...

Выбрать option в select при выборе другого option в другом select
Всем добрый привет! Подскажите, пожалуйста, как реализовать вот какую штуку: необходимо, чтобы при выборе option с value=0 в select с...

8
Эксперт JSЭксперт HTML/CSS
 Аватар для mrtoxas
3827 / 2677 / 1521
Регистрация: 12.07.2015
Сообщений: 6,672
Записей в блоге: 4
14.03.2017, 10:18
Вы можете использовать атрибут data-* для дополнительных данных. Или указывать несколько значений в одном value, например, через запятую и потом разбивать их по этому разделителю.
По задаче не совсем ясно - если выбираем Combobox2>1, что должно произойти и куда должно браться число 200? Опишите подробно последовательность происходящего.
0
 Аватар для Дмитрий Дмитрий
1 / 1 / 2
Регистрация: 17.09.2016
Сообщений: 450
14.03.2017, 12:48  [ТС]
mrtoxas, Здравствуйте, давно с вами не общался))) очень рад что ответили.
Цитата Сообщение от mrtoxas Посмотреть сообщение
Или указывать несколько значений в одном value, например, через запятую и потом разбивать их по этому разделителю.
Как потом разбивать?

Есть формула в js: rezult = (a * b * d ).toFixed(2); где d это combobox1 куда и должны подставляться value из option т.е. выбрали из combobox1 значение А (<option value="100" value="200" value="300">А</option>) у которого есть несколько value, но пока они не подставляются в формулу так как не ясно какой, а при выборе combobox2, например 1 (<option>1</option>), мы и подставляем то value из combobox1 которому соответствует 1 из combobox2-(value="100"), 2 соответствует value="200", 3 value="300", как то так.

Добавлено через 7 минут
Простым языком если)) есть комплектующие в прайсе у каждой комплектующей три цены (цена1, цена2, цена3), так же в прайсе есть три изделия (изделие1, изделие2, изделие3), каждому изделию соответствует своя цена: цена1=изделие1; цена2=изделие2; цена3=изделие3.
Комплектующее-option из combobox1
цена1...3-value из option combobox1
изделие1...3-option из combobox2
0
Эксперт JSЭксперт HTML/CSS
 Аватар для mrtoxas
3827 / 2677 / 1521
Регистрация: 12.07.2015
Сообщений: 6,672
Записей в блоге: 4
14.03.2017, 14:03
Лучший ответ Сообщение было отмечено Дмитрий Дмитрий как решение

Решение

HTML5
1
2
3
4
5
6
7
8
9
10
11
<select name="combobox1" id="Combobox1">
  <option value="100,200,300">А</option>
  <option value="400,500,600">В</option>
</select>
<select name="combobox2" id="Combobox2">
  <option>1</option>
  <option>2</option>
  <option>3</option>
</select>
<button onclick="calc()">Расчитать</button>
<span id="res"></span>
JavaScript
1
2
3
4
5
6
7
8
var select1 = document.getElementById('Combobox1');
var select2 = document.getElementById('Combobox2');
var resSpan = document.getElementById('res');
function calc(){
  var price = select1.value.split(',');  
  var result = price[select2.selectedIndex];
  resSpan.textContent=result;
}
1
 Аватар для Дмитрий Дмитрий
1 / 1 / 2
Регистрация: 17.09.2016
Сообщений: 450
14.03.2017, 15:08  [ТС]
Можно посмотреть где косяк, я не стал прописывать эту строчку resSpan.textContent=result; так понимаю она выводит результат, у меня выводит rezult = (a * b * res).toFixed(2);
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
intp_a = byId('editbox1');
intp_b = byId('editbox2');
sel_d = byId('mobilCombobox1');
sel_e = byId('mobilCombobox2');
rezult_out = byId('wb_rezult');
 
function getValues() {
    a = parseFloat(intp_a.value);
    b = parseFloat(intp_b.value);
    d = parseFloat(sel_d.value);
    e = parseFloat(sel_e.value);
};
 
function printValues() {
    var out = rezult;
    rezult_out.innerHTML = out;
    console.log(out);
}
 
function myFunc2() {
    getValues();
    var price = d.value.split(',');  
    var res = price[e.selectedIndex];
 if (intp_a.value <= 1.0 && intp_b.value <= 1.0) {rezult = (res).toFixed(2);} 
 else rezult = (a * b * res).toFixed(2);
printValues();
};
Добавлено через 12 минут
Событие
sel_d.addEventListener("change", myFunc2);
sel_e.addEventListener("change", myFunc2);
0
Эксперт JSЭксперт HTML/CSS
 Аватар для mrtoxas
3827 / 2677 / 1521
Регистрация: 12.07.2015
Сообщений: 6,672
Записей в блоге: 4
14.03.2017, 15:40
Лучший ответ Сообщение было отмечено Дмитрий Дмитрий как решение

Решение

Накрутили. Объясню свой пример
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
function calc(){
  /* 
      Берем valuе выбранного элемента - 100,200,300. 
      Создаем массив значений, разделенных запятыми.
      Т.е. на выходе, в переменной price будет - массив ['100','200','300'] */
  var price = select1.value.split(',');  
/*
      Узнаем номер по порядку выбранного элемента второго списка через свойство selectedIndex.
      Выводим значение ранее созданного массива с индексом равным номеру выбранного элемента второго списка.
*/
  var result = price[select2.selectedIndex];
  resSpan.textContent=result;
}
Добавлено через 9 минут
Где у вас объявление переменный a,b,d,e?
parseFloat(intp_a.value) вернет вам только первое значение до зaпятой.
1
 Аватар для Дмитрий Дмитрий
1 / 1 / 2
Регистрация: 17.09.2016
Сообщений: 450
15.03.2017, 06:51  [ТС]
Спасибо, все срослось
Такой вопрос, toFixed(2) с целыми числами не работает, консоль выдает ошибку, а как мне преобразовать целые числа 100, 200, 300 в такой вид 100,00; 200,00; 300,00?
0
Эксперт JSЭксперт HTML/CSS
 Аватар для mrtoxas
3827 / 2677 / 1521
Регистрация: 12.07.2015
Сообщений: 6,672
Записей в блоге: 4
15.03.2017, 08:40
Лучший ответ Сообщение было отмечено Дмитрий Дмитрий как решение

Решение

JavaScript
1
var result = parseFloat(price[select2.selectedIndex]).toFixed(2);
1
 Аватар для Дмитрий Дмитрий
1 / 1 / 2
Регистрация: 17.09.2016
Сообщений: 450
15.03.2017, 08:46  [ТС]
Спасибо, а то я так сделал
if (intp_a.value <= 1.0 && intp_b.value <= 1.0) {rezult = resSpan+".00";}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
15.03.2017, 08:46
Помогаю со студенческими работами здесь

Построить select multiple, где несколько option selected
Здравствуйте! В БД в некоторую таблицу в ячейку записаны значения value ($stat_vals) через запятую, например 20,21,24 Есть другая...

Получение значений выбранных option в select
Доброго времени суток. Имеется такой select &lt;?php $res = mysql_query(&quot;SELECT DISTINCT course FROM...

Как присвоить несколько параметров одному объекту?
Возможно ли реализовать следующее: в базе данных у меня есть пациент, у которого есть основной диагноз и сопутствующий. Основной - один,...

Как присвоить одному заказу несколько позиций?
Привет всем! Товарищи, столкнулся тут с таким интересным вопросом, который в книжке не обрисован. Я не знаю как мне...

Как присвоить несколько действий к одному таймеру?
Массив А формируется рандомно в stringGrid каждую секунду. Массив В формируется каждые 3 секунды по правилу:первые 10 элементом Bi=Ai+i,...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Уведомление о неверно выбранном значении справочника
Maks 06.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "НарядПутевка", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если в документе выбран неверный склад. . .
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2. Данный документ берёт данные из другого нетипового документа. . .
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать программный контроль на предмет проведения документа. . .
Программный контроль заполнения реквизитов табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: 1. Реализовать контроль заполнения реквизита. . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru