Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 30.10.2011, 13:30
Новичок на форуме
Отправить личное сообщение для sibbora Посмотреть профиль Найти все сообщения от sibbora
 
Регистрация: 30.10.2011
Сообщений: 2

Как передать onclick-функции значение value другого элемента
Пишу первый скрипт на JS (веб-форма), столкнулся с такой проблемой:

По событию onclick на выпадающем списке происходит обращение к функции. При этом функции нужно передать как value непосредственно этого выпадающего списка, так и value другого элемента в форме, а именно - radiobutton-a.

Вот код:
<input type="radio" name="polusharie" value="north" onclick="izmen_sozvezdie(this.value)">Северное полушарие
<input type="radio" name="polusharie" value="south" onclick="izmen_sozvezdie(this.value)">Южное полушарие
<select name="sozvezdie" size="1" onclick="calculate_zvezda(this.value,polusharie.value)"> 
<option value="0">Выберите группу созвездий</option>
</select>


Пробовал даже так:
<input type="radio" name="polusharie" value="north" onclick="izmen_sozvezdie(this.value)">Северное полушарие
<input type="radio" name="polusharie" value="south" onclick="izmen_sozvezdie(this.value)">Южное полушарие
<select name="sozvezdie" size="1" onclick="calculate_zvezda(this.value,document.getElementById('polusharie').value)"> 
<option value="0">Выберите группу созвездий</option>
</select>


...не работает ни так, ни этак. Второй аргумент в функции имеет значение undefined.
Ответить с цитированием
  #2 (permalink)  
Старый 30.10.2011, 15:17
Аватар для walik
Профессор
Отправить личное сообщение для walik Посмотреть профиль Найти все сообщения от walik
 
Регистрация: 09.11.2009
Сообщений: 1,101

Сообщение от sibbora
Второй аргумент в функции имеет значение undefined.
Правильно, так как вы используете функцию getElementById, а самому элементу ID не прописали
__________________
"Всегда пишите код так, будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете."
Мой сертификат :-D клацай
Ответить с цитированием
  #3 (permalink)  
Старый 30.10.2011, 15:25
Новичок на форуме
Отправить личное сообщение для sibbora Посмотреть профиль Найти все сообщения от sibbora
 
Регистрация: 30.10.2011
Сообщений: 2

walik, спасибо Вам большое.

Действительно, заработал второй фрагмент кода с заданным ID:
<input type="radio" name="polusharie" id="polusharie" value="north" onclick="izmen_sozvezdie(this.value)">Северное полушарие
<input type="radio" name="polusharie" id="polusharie" value="south" onclick="izmen_sozvezdie(this.value)">Южное полушарие
<select name="sozvezdie" size="1" onclick="calculate_zvezda(this.value,document.getElementById('polusharie').value)">
<option value="0">Выберите группу созвездий</option>
</select>


Хоть проблема решена, всё же мне интересно: почему не работает первый вариант кода с обращением просто по имени? В JS таким образом ограничена видимость свойств объектов? Дело в том, что я раньше только в VB и VBA программы писал, а там, насколько понимаю, сама концепция формы другая.
Ответить с цитированием
  #4 (permalink)  
Старый 30.10.2011, 18:07
Аватар для trikadin
Модератор
Отправить личное сообщение для trikadin Посмотреть профиль Найти все сообщения от trikadin
 
Регистрация: 27.04.2010
Сообщений: 3,417

Потому что обращаться по имени к объекту можно только в контексте формы.

<form>
<input type="radio" name="polusharie_north" value="north" onclick="izmen_sozvezdie(this.value)">Северное полушарие
<input type="radio" name="polusharie_south" value="south" onclick="izmen_sozvezdie(this.value)">Южное полушарие
<select name="sozvezdie" size="1" onclick="calculate_zvezda(this.value, this.form.polusharie_north.value)">
<option value="0">Выберите группу созвездий</option>
</select>

</form>
__________________
Читайте:
Ты любопытный) Всё-таки, ничему в этом мире не помешает хорошая доля юмора)
Как спросить, чтобы вам ответили
Часто Задаваемые Вопросы (FAQ)
Ответить с цитированием
Ответ


Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как передать значение переменной в IFRAME в поле формы JS-ом из самой страницы? DeUre Общие вопросы Javascript 14 17.12.2013 16:37
Передать значение функции в value inputа lexbog Firefox/Mozilla 4 22.09.2012 23:41
Как в IE динамически установить значение события onClick? Гость Элементы интерфейса 6 16.01.2011 23:46
Значение переменной не может привысить 30 и опуститься ниже 1-го, как сделать? libinstyle Events/DOM/Window 3 12.07.2010 23:27
Как передать элемент в функцию после createElement Oleg NT Общие вопросы Javascript 3 23.06.2008 02:11