Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Надпись меняется в зависимости от SELECTa (https://javascript.ru/forum/misc/27192-nadpis-menyaetsya-v-zavisimosti-ot-selecta.html)

sitebuilder 05.04.2012 00:58

Надпись меняется в зависимости от SELECTa
 
Всем привет. Помогите реализовать следущее:

Имеется такая вот структура страницы (количество строк всегда разное):

Переключатель SELECT | ТекстТекстТекст

Переключатель SELECT | ТекстТекстТекст

Переключатель SELECT | ТекстТекстТекст

Переключатель SELECT | ТекстТекстТекст

Нужно реализовать чтобы при выборе значения в SELECTe в конец текста справа от SELECTa дописывалось значение SELECTa (его value).

Простите новичка, но пока что могу реализовать на JS лишь самое простейшее.

observer 05.04.2012 01:43

Документация пробовали читать?

sitebuilder 05.04.2012 01:51

Пробовал. У меня вот что получилось:

Выпадающий список вывожу так:

<select name="price" id="price" onchange="document.getElementById('cena').innerHTM L='&p='+document.getElementById('price').value;">>
<option value="1">1$</option>
<option value="3" selected>3$</option>
<option value="5">5$</option>
<option value="7">7$</option>
</select>

А в конце текста дописываю:

<span id=cena name=cena></span>

--------

Проблема в том, что у меня структура страницы вот такая:

Переключатель SELECT | ТекстТекстТекст

Переключатель SELECT | ТекстТекстТекст

Переключатель SELECT | ТекстТекстТекст

Переключатель SELECT | ТекстТекстТекст

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

При применении моего способа только в одном месте в конец текста дописывается значение SELECT. а мне надо во все сразу дописать.

observer 05.04.2012 02:17

Ок. Давайте по-порядку, а то мне не спится.

1. Что такое у вас cena и price? Транслит, знаете, нынче не в моде. Вы уж определитесь, может sum, total, amount -- что у вас там по смыслу?


2. Select это не переключатель, переключатели обычно дома на стене находятся. А выпадающий список, элемент формы. Еще бывают "мультиселекты", позволяющие выбрать не одно, а несколько значений.


3. Самый "простой" случай. Если у вас зависимые поля, то проще и нагляднее им задать значение id так "price__result", а при присваивании им значения, просто искать их как this.id + "__result". Понимаешь?


4. Вынести логику из атрибута в функцию.

function getSelectedOptionValue(oSelect) {
	return oSelect.options[oSelect.selectedIndex].value;
}

function setResultValue(oSelect) {
    document.getElementById(oSelect.id + "__result").innerHTML = getSelectedOptionValue(oSelect);
}


<select id="teacher" name="teacher" onchange="setResultValue(this)">
    <option value="one" selected="selected">раз</option>
    <option value="two">два</option>
    <option value="three">три</option>
</select>

<p id="teacher__result">one</p>



5. Задача какая-то размытая, что такое "тексттексттекст"?
Я не нашел такого слова ни в одном словаре.

melky 05.04.2012 02:29

так что ли?

поставьте вопрос более точно, не пишите "рыбу", лучше слепите пример на другую форму - в данном случае, можно было заменить доллары на евро, если у Вас уж такая конфиденциальная информация о сайте на руках.

(хотя даже и оригинальный кусок скопировать, всё равно всем пофигу)

<select name="price" id="price" onchange="document.getElementById('cena').innerHTML*!*+*/!*='&p='+document.getElementById('price').value;">> 
<option value="1">1$</option>
<option value="3" selected>3$</option>
<option value="5">5$</option>
<option value="7">7$</option>
</select>

<span id=cena name=cena></span>

sitebuilder 05.04.2012 02:30

А если у меня несколько элементов с одним и тем же id, можно ли выбранное значение вписать сразу во все элементы с одним и тем же id, а не в один?

melky 05.04.2012 02:31

нет, ид в пределах одной страницы уникален.

но изловчиться можно, конечно...

sitebuilder 05.04.2012 02:35

А мне как раз и нужно изловчиться ))) Я видел как на некоторых сайтах подобную ситуацию разруливали вставляя в нужные места сайта не элементы с одним и тем же id, а выдуманный тэг. Например <s></s>

trikadin 05.04.2012 02:45

sitebuilder, я предлагаю вам, во избежание вами беспокойств по поводу весьма банальных вопросов, а нами - расстройств и стрессов по поводу вашей необразованности почитать весьма полезный сайт: http://learn.javascript.ru

И, учитывая, что вы ничего не знаете о классах (во всяком случае, вы не догадались, что здесь надо использовать их), я также предлагаю вам ознакомиться с самоучителем по html: http://htmlbook.ru/samhtml (и, далее, по css: http://htmlbook.ru/samcss )

Спасибо за внимание.

sitebuilder 05.04.2012 03:09

Сделал так:
<select onchange="document.getElementByClass('cena').inner HTML='3руб';">
<option value="1">1</option>
<option value="3" selected>3</option>
<option value="5">5</option>
<option value="7">7</option>
</select>

<span class="cena"></span>

Подскажите, где ошибся, почему "3руб" не пишется внутрь SPANa ?


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