Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   select onChange (https://javascript.ru/forum/events/7457-select-onchange.html)

pingvinchic 02.02.2010 19:09

select onChange
 
Имеется оператор выбора :
Код:

<select name='project' id='project' size='1'>
          <option value="0">Выберите проект</option>
          <option value="all_projects">Все проекты</option>
<?
$result = mysql_query("SELECT project_id, project_name FROM projects", $db);     
$myrow = mysql_fetch_array($result); 
do {
    printf (" <option value='%s'>%s</option>", $myrow["project_id"], $myrow["project_name"]);
      }
 while ( $myrow = mysql_fetch_array ($result) );  ?>
</select>

и 4 радиокнопки:

<input type="radio" name="time" id="time" value="за все время">
<input type="radio" name="time" id="time" value="диапазон">
<input type="radio" name="otchet" id="otchet" value="подробно">
<input type="radio" name="otchet" id="otchet" value="суммарно">

Подскажите, пожалуйста, как сделать так, чтобы при выборе значения "all_projects", радиокнопки со значениями "за все время" и "подробно" становились неактивными, а во всех остальных случаях все 4 были активными?

vk65535 02.02.2010 19:43

function onProjectChange() {
	var s = document.getElementById('project');
	if (!s) return;
	var dis = s.value === 'all_projects', f = function(id) {
		var e = document.getElementById(id);
		if (e && (e.disabled = dis)) e.checked = false;
	};
	f('time');
	f('otchet');
}

pingvinchic 02.02.2010 19:54

Скажите, а в форме, чтобы эта функция работала, достаточно так написать:

<select name='project' id='project' size='1' onchange="onProjectChange()"> 

<div id="onProjectChange">
кнопки
</div>

?

vk65535 02.02.2010 20:44

да

pingvinchic 02.02.2010 23:02

так не работает...я предполагаю надо что-то еще дописывать к кнопкам в их свойства, а то как же он узнает какая именно кнопка со значением "time" или "otchet" будет скрытой?

vk65535 03.02.2010 12:03

А, так у вас тут по две кнопки с id="time" и id="otchet". Я думал, это опечатка - сделайте дубликатам другие id, например так:
<input type="radio" name="time" id="time" value="за все время">
<input type="radio" name="time" id="time1" value="диапазон">
<input type="radio" name="otchet" id="otchet" value="подробно">
<input type="radio" name="otchet" id="otchet1" value="суммарно">

pingvinchic 03.02.2010 12:37

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

"за все время" либо "диапазон" и потом или подробно или суммарно

а оператор такой в js есть === как в 4 строчке?

vk65535 03.02.2010 16:57

Радио-кнопки группируются по name-у, а id нужно чтобы различать элементы. И кстати, недопустимо наличие на странице двух любых элементов с одинаковыми id - иначе теряется смысл этого атрибута.

http://www.w3.org/TR/1999/REC-html40...l.html#adef-id


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