
25.10.2012, 13:59
|
|
Интересующийся
|
|
Регистрация: 22.04.2011
Сообщений: 15
|
|
|
Выбор всех Select
Здравствуйте, подскажите как можно перебрать все селекты по очереди и взять из них активное значение.
div id="option-228" - этот и подобные изначально неизвестны
id у select - изначально неизвестно
name у select - изначально неизвестно
<form id="new" action="">
<div id="option-228" class="option">
<span class="required">*</span>
<select class="sel_opt" id="228" name="option[228]">
<option value=""> первый </option>
<option value="19">второй</option>
</select>
</div>
<br>
<div id="option-217" class="option">
<span class="required">*</span>
<b>Select:</b><br>
<select class="sel_opt" id="217" name="option[217]">
<option value=""> Blue </option>
<option value="4">Red </option>
<option value="3">Green</option>
</select>
</div>
<br>
<div id="option-227" class="option">
<span class="required">*</span>
<b>Select:</b><br>
<select class="sel_opt" id="227" name="option[227]">
<option value="">Выбор 1</option>
<option value="17">Выбор 2</option>
<option value="18">Выбор 3</option>
</select>
</div>
</form>
|
|

25.10.2012, 14:18
|
 |
Профессор
|
|
Регистрация: 03.05.2011
Сообщений: 848
|
|
kvaleksandr,
var sel = document.getElementById("new").getElementsByTagName("select"), sel_leng = sel.length, mas_sel = [];
for (i=0; i < sel_leng; i++) {
mas_sel.push(sel[i].value);
}
или можно по классу...
|
|

26.10.2012, 05:57
|
|
Интересующийся
|
|
Регистрация: 22.04.2011
Сообщений: 15
|
|
Пробую
$('select.sel_opt').bind('change', function() {
var sel = document.getElementById("new").getElementsByTagName("select"), sel_leng = sel.length, mas_sel = [];
for (i=0; i < sel_leng; i++) {
mas_sel.push(sel[i].value);
}
alert(sel);
$('#new_price').text(sel);
});
через alert выдается такое вот, может я чего неправильно делаю? ощущение что в sel передается массив, только вот как его потом оттуда извлечь?

|
|

26.10.2012, 06:52
|
|
Кандидат Javascript-наук
|
|
Регистрация: 03.10.2012
Сообщений: 147
|
|
|
У вас же кнопка отправить будет, зачем вы постоянно обращаетесь к заполнению массива, жесть.
Когда можно при отправки заполнить массив, проверив, что выбрана не пустота и радоваться.
|
|

26.10.2012, 09:33
|
|
Интересующийся
|
|
Регистрация: 22.04.2011
Сообщений: 15
|
|
Сообщение от Your
|
У вас же кнопка отправить будет, зачем вы постоянно обращаетесь к заполнению массива, жесть.
Когда можно при отправки заполнить массив, проверив, что выбрана не пустота и радоваться.
|
при обработке селектов в
$('#new_price').text(sel);
должен помещаться результат обработки всех селектов.
Суть задачи такая. есть изначально неизвестное количество селектов, в каждом селекте хранится параметр с цифрой. Мне необходимо суммировать все селекты и вывести в отдельный див.
|
|

26.10.2012, 09:49
|
 |
Профессор
|
|
Регистрация: 03.05.2011
Сообщений: 848
|
|
|
kvaleksandr, вы скажите почему выводите sel, а не mas_sel ? для чего по вашему в цикле массив собирается?)
|
|

26.10.2012, 12:26
|
|
Интересующийся
|
|
Регистрация: 22.04.2011
Сообщений: 15
|
|
Сообщение от lord2kim
|
|
kvaleksandr, вы скажите почему выводите sel, а не mas_sel ? для чего по вашему в цикле массив собирается?)
|
спасибо за подсказку, очень давно с кодом дел не имел).
|
|

26.10.2012, 14:52
|
|
Интересующийся
|
|
Регистрация: 22.04.2011
Сообщений: 15
|
|
Когда пытаюсь вытащить value из вашего примера, то все работает на отлично, но как пытаюсь вытащить текст, то значения выходят пустые.
var sel = document.getElementById("new").getElementsByTagName("select"), sel_leng = sel.length, mas_sel = [];
for (i=0; i < sel_leng; i++) {
mas_sel.push(sel[i].Text);
}
перепробовал несколько вариантов, но значения кроме как из value прочитать не удается(
|
|

26.10.2012, 14:57
|
 |
Профессор
|
|
Регистрация: 03.05.2011
Сообщений: 848
|
|
|
kvaleksandr, если память не изменяет, то не Text, а text
|
|

26.10.2012, 16:05
|
|
Интересующийся
|
|
Регистрация: 22.04.2011
Сообщений: 15
|
|
Сообщение от lord2kim
|
|
kvaleksandr, если память не изменяет, то не Text, а text
|
да я уже и text и text() и всяко пробовал, пробовал даже в селект засовывать title и оттуда попытаться взять значения, но безрезультатно(
|
|
|
|