Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   document.getElementById и select (https://javascript.ru/forum/dom-window/25342-document-getelementbyid-i-select.html)

danik.js 22.03.2013 20:21

Цитата:

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

Теперь это стандарт, а значит так делать можно. Хотя сам я не в восторге от такого метода. Просто в пихая в атрибут, хочется по максимуму сократить код, при этом опуская даже ключевое слово this. Код из атрибута, как показано devote, тоже предпочтительней вынести в скрипт.

Yuricson 08.12.2013 13:23

Ребята, а как то же самое в input=text сделать? Код:
Код:

<script>
values=[
'36 000',
'38 000',
]
</script>
<form name="qwe">
<select onchange="document.getElementById('id_2').innerHTML=values[this.selectedIndex];">
<option  value=140*200 см>140*200 см</option>
<option  value=160*200 см>160*200 см</option>
</select>
<input type="text" name="price" value="36 000" size="25">
</form>         

<div><span id="id_2">36 000</span> рублей</div>

Надо что бы такое же значение в input передать. Совсем в JS не шарю.

danik.js 08.12.2013 19:15

Точно также, только свойство не .innerHTML, а .value
Ну и если инпут в той же форме, то можно вместо document.getElementById написать this.form.inputName (где inputName имя инпута (атрибут name)).

Yuricson 08.12.2013 20:26

this.form.inputName('price').value=values[this.selectedIndex]
Не работает. Или я что то не так делаю.

danik.js 08.12.2013 20:39

this.form.price.value=values[this.selectedIndex]


Кстати не проще ли сделать так:
<form name="qwe">
<select onchange="form.price.value = this.value">
<option  value="36 000">140*200 см</option>
<option  value="38 000">160*200 см</option>
</select>
<input type="text" name="price" value="36 000" size="25">
</form>


И между прочим значения с пробелами нужно оборачивать в кавычки.

Yuricson 08.12.2013 20:44

Большое спасибо! Всё работает.

Yuricson 08.12.2013 21:36

Нет не проще, нужно передать другой странице и размер и цену. Хотя может и есть решения проще.

Venzeles 23.04.2014 17:20

Цитата:

Сообщение от danik.js (Сообщение 242052)
id_2.innerHTML = values[this.selectedIndex] || 'не тупи'


Можно еще так:
<form name="qwe">
    <select onchange="id_2.innerHTML = selectedOptions[0].getAttribute('data-text') || 'не тупи'">
        <option value=0 data-text="ноль"></option>
        <option value=1 data-text="одын">бла</option>
        <option value=2 data-text="двы">бла бла</option>
        <option value=3>бла бла бла</option>
        <option value=4>бла бла бла бла</option>
    </select>
</form>     
<div id="id_2"></div>

Все бы хорошо, но не работает в IE и Safari, как быть?

danik.js 23.04.2014 20:59

Помоему selectedOptions не кроссбраузерное.
Venzeles, пробуй this[this.selectedIndex].getAtt...

GreenJo 28.04.2014 14:27

Привет всем

Профессор подскажите можно ли сделать следующее:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Документ без названия</title>
<script>
/*функция, отображающая результат на странице */
function changeResult(result){
  document.getElementById('result').innerHTML = result;
}

/*функция, проводящая непосредственно вычисления */
function calculateForm(){

   var result = document.getElementById('id_2').value=prices;
  changeResult(result);
}
</script>
</head>

<body>
<script>
var prices=[
' ',
880,
2360,
2530
]
</script>

<form id="f">
<select onchange="document.getElementById('id_2').innerHTML=prices[this.selectedIndex]">
<option  value =" "></option>
<option  value=1>Глухая дверь ДГ001</option>
<option value=2>Межкомнатная дверь ДО002</option>
<option  value=3 >Межкомнатная дверь ДО003</option>
</select>
</form>
<div id="id_2"></div>
<!--Кнопка рассчитать -->
  <div onClick="calculateForm();" style="cursor:hand;cursor:pointer;">Рассчитать</div>


<!-- Контейнер вывода результата -->
<div id="result"></div>

</body>
</html>


Сделать сложение.
При нажатии рассчитать выходят все значения prices, не могу сделать чтоб выходили числа по значению value подскажите плиз.


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