Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   <select> & JS (https://javascript.ru/forum/dom-window/37573-select-js.html)

galograff 25.04.2013 10:39

<select> & JS
 
в ява, я постольку по скольку, поэтому у меня такой вопрос
мне нужно построить ссылку из 2х селектов и сделать переход по ней на указаную страницу;
пробовал различные варианты выдает:
?menu=undefined&number=undefined

сслыка вида ?menu=audi&number=r17

<div class="mod_jbt_model">
<p>Выберите модель</p>
<select class="child" id="child"  onchange="selChange(this.value)">
<option>Выбрать</option>
<option value="audi">audi</option>
<option value="bmw">bmw</option>
<option value="pro4aya">pro4aya</option>
<option value="huevert'">huevert'</option>
</select>
</div>
<div class="mod_jbt_r">
<p>Выберите размер дисков:</p>
<select id="subchild">
<option>Выбрать</option>
<option value="r15">r15</option>		
<option value="r16">r16</option>
<option value="r17">r17</option>
<option value="r18">r18</option>
<option value="r19">r19</option>
<option value="r20">r20</option>
<option value="r21">r21</option>
<option value="r21">r22</option>		
</div>
<br class="cls">


<script>
var model = document.getElementById('child').value;
var rad = document.getElementById.subchild.options[selectedIndex]; 
function selChange() {
  var href = '?menu=' + model + '&number=' + rad 
  alert(href)
}
</script>

eugasl 25.04.2013 11:31

Так как у вас select по умолчанию имеет не определенное value, и так как скорее всего, вы запускате скрипт под IE значения переменный model и rad будут равняться undefined
Если вы тот же самый скрипт запустите, например в Chrome, то model и rad будут иметь значение "Выбрать"

У вас model и rad принимают значения при рендеринге страницы, а не при выборе значения в select'е, поэтому объявление этих переменных нужно перенести в функцию selChange()

galograff 25.04.2013 11:39

если не сложно, покажи как это делается

eugasl 25.04.2013 11:42

Какая твоя цель? Написать этот скрипт и забыть про JavaScript?
Я бы посоветовал взять книжку или пользоваться поисковыми системами. Имхо, будет больше пользы, чем если кто-то тебе здесь напишет как надо.

galograff 25.04.2013 11:42

я попробовал вот так и наткнулся на то что ты как раз и сказал
<script>
var model = document.getElementById('child');
mod = model.options[model.selectedIndex].value;
var rad = document.getElementById.subchild.options[selectedIndex]; 
function selChange() {
  var href = '?menu=' + mod + '&number=' + rad 
  alert(href)
}
</script>

galograff 25.04.2013 11:47

я в ява толком никогда не лазил, у меня цель помочь товарищу, цмс адская все базы хранятся в txt(( я почти все сделал вот остался вопрос с формирование ссылки

galograff 25.04.2013 13:47

хм, неужто на всем форуме никто не может сказать как это должно работать?

ksa 25.04.2013 14:34

Цитата:

Сообщение от galograff
нужно построить ссылку из 2х селектов

Как вариант...

<!DOCTYPE html>
<html>
<head>
<!--
<script src="http://code.jquery.com/jquery-latest.js"></script>
<link rel="stylesheet" type="text/css" href="tmp.css" />
-->
<style type="text/css">
</style>
<script type="text/javascript">
function test() {
	var menu=document.getElementById('child').value;
	var number=document.getElementById('subchild').value;
	if (menu=='') return;
	if (number=='') return;
	alert('?menu='+menu+'&number='+number);
};
</script>
</head>
<body>
<div class="mod_jbt_model">
	<label for='child'>Выберите модель</label>
	<select class="child" id="child" onchange='test();'>
		<option value=''>Выбрать</option>
		<option value="audi">audi</option>
		<option value="bmw">bmw</option>
		<option value="pro4aya">pro4aya</option>
		<option value="huevert'">huevert'</option>
	</select>
</div>
<div class="mod_jbt_r">
	<label for='subchild'>Выберите размер дисков:</label>
	<select id="subchild" onchange='test();'>
		<option value=''>Выбрать</option>
		<option value="r15">r15</option>		
		<option value="r16">r16</option>
		<option value="r17">r17</option>
		<option value="r18">r18</option>
		<option value="r19">r19</option>
		<option value="r20">r20</option>
		<option value="r21">r21</option>
		<option value="r21">r22</option>		
	</select>
</div>
</body>
</html>

Но я бы рекомендовал переход делать не на основании изменения селектов, а по кнопке...

ksa 25.04.2013 14:35

Цитата:

Сообщение от galograff
сделать переход по ней на указаную страницу

Как вариант...

top.location=<нужный_URL>;

galograff 25.04.2013 16:19

отлично, спасибо.


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