Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Вывести все выбранные значение select на страницы (https://javascript.ru/forum/misc/53557-vyvesti-vse-vybrannye-znachenie-select-na-stranicy.html)

djonA 08.02.2015 23:12

Вывести все выбранные значение select на страницы
 
Добрый день.
Нужно в input вывести все выбранные значение select - форм с классом vse

Помогите пжл.

т.е
<input value="" id="syda">

и произвольное число 
<select class="vse" onchange="document.getElementById('syda').value=vse.options[this.selectedIndex].value">
<option value="0"></option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
</select>

<select class="vse" onchange="document.getElementById('syda').value=vse.options[this.selectedIndex].value">
<option value="0"></option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
</select>

<select class="vse" onchange="document.getElementById('syda').value=vse.options[this.selectedIndex].value">
<option value="0"></option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
</select>


и мне надо onchange любого из селектов вставлять в "syda" выбранные значение всех селектов с классом vse

Пробую не получается

рони 08.02.2015 23:17

djonA,
напишите функцию которая в цикле опросит все селекты с нужным классом

djonA 08.02.2015 23:33

пробую, не выходит поправьте плизз:
<script>
function kjhgs(){
var go = document.getElementsByClassName('vse');
document.getElementById("syda").value=go[].value);}
</script>

<input value="" id="syda">

<select class="vse" onchange="kjhgs();">
<option value="0"></option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
</select>

<select class="vse" onchange="kjhgs();">
<option value="0"></option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
</select>

рони 08.02.2015 23:36

djonA,
а где в коде цикл и переменная для накопления результата
пока есть go c нужными элементами и попытка вывода неизвестно чего

djonA 08.02.2015 23:56

<script>
function kjhgs(){
var summa=0;
var go = document.getElementsByClassName('vse');
for (var i = go.value; i++) { summa+=i; }
document.getElementById("klsa").value=summa);}
</script>

<input value="" id="syda">

<select class="vse" onchange="kjhgs();">
<option value="0"></option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
</select>

<select class="vse" onchange="kjhgs();">
<option value="0"></option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
</select>


все равно не выходит:-(

рони 09.02.2015 00:07

djonA,
<!DOCTYPE HTML>

<html>

<head>
  <title>Untitled</title>
  <meta charset="utf-8">
</head>

<body>
<script>
function kjhgs() {
    var summa = 0;
    var go = document.getElementsByClassName('vse');
    for (var i = 0; go[i]; i++) {
        summa += +go[i].value;
    }
    document.getElementById("syda").value = summa;
}
</script>

<input value="" id="syda">

<select class="vse" onchange="kjhgs();">
<option value="0"></option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
</select>

<select class="vse" onchange="kjhgs();">
<option value="0"></option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
</select>

</body>

</html>

djonA 09.02.2015 00:16

Спасибо большое, а для текстовых полей если что бы их плюсовало :
<html>

<head>
<title>Untitled</title>
<meta charset="utf-8">
</head>

<body>
<script>
function kjhgs() {
var summa = 0;
var go = document.getElementsByClassName('vse');
for (var i = 0; go[i]; i++) {
summa += +go[i].value;
}
document.getElementById("syda").value = summa;
}
</script>

<input value="" id="syda">

<select class="vse" onchange="kjhgs();">
<option value=""></option>
<option value="один">1</option>
<option value="два">2</option>
<option value="три">3</option>
</select>

<select class="vse" onchange="kjhgs();">
<option value=""></option>
<option value="один">1</option>
<option value="два">2</option>
<option value="три">3</option>
</select>

рони 09.02.2015 00:20

djonA,
а подумать никак?
var summa = '';
...
summa += go[i].value;

рони 09.02.2015 00:27

caetus,
если нужен пробел коментарий убрать
<html>

<head>
<title>Untitled</title>
<meta charset="utf-8">
</head>

<body>
<script>
function kjhgs() {
var summa = [];
var go = document.getElementsByClassName('vse');
for (var i = 0; go[i]; i++) {
go[i].value && summa.push(go[i].value);
}
document.getElementById("syda").value = summa;
//document.getElementById("syda").value = summa.join(', ');
}
</script>

<input value="" id="syda">

<select class="vse" onchange="kjhgs();">
<option value=""></option>
<option value="один">1</option>
<option value="два">2</option>
<option value="три">3</option>
</select>

<select class="vse" onchange="kjhgs();">
<option value=""></option>
<option value="один">1</option>
<option value="два">2</option>
<option value="три">3</option>
</select>
</body>

</html>

caetus 09.02.2015 00:33

Он вроде вот что то такое хотел , если я правильно понял ))
с трудом исправил )))) спать наверно охота ((

а можно такое реализовать на 1 000 000 без массива ?))) а то год уйдет на то чтоб забить массив )))
<html>

<head>
<title>Untitled</title>
<meta charset="utf-8">
</head>

<body>
<script>
function kjhgs() {
var arr = ['ноль','один', 'два', 'три', 'четыре', 'пять', 'шесть']
var summa = 0;
var go = document.getElementsByClassName('vse');
for (var i = 0; go[i]; i++) {
summa += +go[i].value;
}
document.getElementById("syda").value = arr[summa];
}
</script>

<input value="" id="syda">

<select class="vse" onchange="kjhgs();">
<option value=""></option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
</select>

<select class="vse" onchange="kjhgs();">
<option value=""></option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
</select>
[/quote]


Часовой пояс GMT +3, время: 09:14.