Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 22.10.2012, 02:22
BLP BLP вне форума
Интересующийся
Отправить личное сообщение для BLP Посмотреть профиль Найти все сообщения от BLP
 
Регистрация: 14.10.2012
Сообщений: 23

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

Есть SELECT с onChange
<select name="PB2001" id="PB2001" class="text" onblur="checkPassword()" onChange="fifeno()">
                  <option value="?">?</option>
                  <option value="no">no</option>
                  <option>(BG) NFF LO</option>
                  <option>(BG) NFF RX</option>
                  <option>(AT) KKO LO</option>
</select>


и скрипт на выполнение измемения значения... Смысл которого в следующем...
Если выбрано значение Селекта "no", то появляются еще 2 поля для ввода... Если выбраны другие значения - то эти поля - невидимы (как и по умолчанию при загрузке страницы)
<script>
function fifeno() { if (document.getElementById('PB2001').value='no'){ 
                document.getElementById('PB').style.display='block';
                document.getElementById('PN').style.display='block';
                document.getElementById('PBT').style.display='block';
                  }
               else {
               document.getElementById('PB').style.display='none';
               document.getElementById('PN').style.display='none';
               document.getElementById('PBT').style.display='none';
                }}
                			</script>


Проблема:
При загрузке страницы "другие поля" невидимы, т.е. ОК
Если выбираю значение "no" - то 2 невидимых поля появляются. НО! После этого какое бы значение , отличное от "no" я не выбирал бы - все равно "no", т.е. не возможно установить другое значение.

Что не так? Или как? ))

Помогите, плз. Оч. надо!
Ответить с цитированием
  #2 (permalink)  
Старый 22.10.2012, 03:41
Кандидат Javascript-наук
Отправить личное сообщение для Your Посмотреть профиль Найти все сообщения от Your
 
Регистрация: 03.10.2012
Сообщений: 147

<!DOCTYPE html>
<html>
<head>
	<meta charset="utf-8">
	<title>Example</title>
	<style type="text/css">
		#input{display:none;}
	</style>
</head>
<body>
	<select name="PB2001" onchange="fifeno(this)">
		<option value="?">?</option>
		<option value="no">no</option>
		<option value="(BG) NFF LO">(BG) NFF LO</option>
		<option value="(BG) NFF RX">(BG) NFF RX</option>
		<option value="(AT) KKO LO">(AT) KKO LO</option>
	</select>
	<input name="input" id="input" value="Появился">
	<script type="text/javascript">
		function fifeno(self) {
			var input=document.getElementById('input');
			if('no'==self.value) {
				if(!input.style.display) {
					input.style.display='block';
				}
			} else if('block'==input.style.display) {
				input.style.display='';
			}
		}
	</script>
</body>
</html>
Ответить с цитированием
  #3 (permalink)  
Старый 22.10.2012, 08:54
BLP BLP вне форума
Интересующийся
Отправить личное сообщение для BLP Посмотреть профиль Найти все сообщения от BLP
 
Регистрация: 14.10.2012
Сообщений: 23

Спасибо. Заработало.
Извините, что сразу все не написал, но возникла следующая ситуация.
У меня 3 скрытых поля, что нужно дописать...что бы 3 поля скрывались и появлялись сразу.
Я попробовал добавить в скрипт второй вар, но не помогло
var input=document.getElementById('input');
var input=document.getElementById('input2');
Ответить с цитированием
  #4 (permalink)  
Старый 22.10.2012, 09:01
Аватар для lord2kim
Профессор
Отправить личное сообщение для lord2kim Посмотреть профиль Найти все сообщения от lord2kim
 
Регистрация: 03.05.2011
Сообщений: 848

BLP, обращаться к свойству display у каждого по отдельности...
или засунуть все поля в какой-нибудь блок, например, div или span, и скрывать уже его
Ответить с цитированием
  #5 (permalink)  
Старый 22.10.2012, 14:43
BLP BLP вне форума
Интересующийся
Отправить личное сообщение для BLP Посмотреть профиль Найти все сообщения от BLP
 
Регистрация: 14.10.2012
Сообщений: 23

Спасибо, получилось... ))) Но, как всегда, цепная реакция...
Вообщем, задача еще немного усложняется (надеюсь это у меня последнее).
Как прописать, чтобы при вводе значения "no" - первое поле (input)) появлялось, а второе (input2)- скрывалось...
При значении "?" - скрывались оба поля, а при выборе остальных значений, первое (input) - скрывалось, а второе (input2) - появлялось... (Вот задачка для меня! Полдня перепробовал варианты, в результате - Здесь засуну, там вылезет, там засуну, здесь вылазит... )))
<body>
	    <select name="PB2001" onchange="fifeno(this)">
        <option value="?">?</option>
	        <option value="no">no</option>
	        <option value="(BG) NFF LO">(BG) NFF LO</option>
	        <option value="(BG) NFF RX">(BG) NFF RX</option>
	        <option value="(AT) KKO LO">(AT) KKO LO</option>
	    </select>
	    <input name="input" id="input" value="Появился">
	    <input name="input2" id="input2" value="Появился">
	    <script type="text/javascript">
	        function fifeno(self) {
            var input=document.getElementById('PB');
            var input2=document.getElementById('PN');
			
            if('no'==self.value) {
               if(!input.style.display) {
                    input.style.display='block';
                     input2.style.display='';
               }
            } else if('block'==input.style.display) {
                input.style.display='';
                input2.style.display='block';
			}
	        }
	    </script>
	</body>

Последний раз редактировалось BLP, 22.10.2012 в 14:47.
Ответить с цитированием
  #6 (permalink)  
Старый 22.10.2012, 16:03
Кандидат Javascript-наук
Отправить личное сообщение для Your Посмотреть профиль Найти все сообщения от Your
 
Регистрация: 03.10.2012
Сообщений: 147

<!DOCTYPE html>
<html>
<head>
	<meta charset="utf-8">
	<title>Example</title>
	<style type="text/css">
		#input input{display:none;}
	</style>
</head>
<body>
	<select name="PB2001" onchange="fifeno(this)">
		<option value="?">?</option>
		<option value="no">no</option>
		<option value="two">two</option>
		<option value="(BG) NFF LO">(BG) NFF LO</option>
	</select>
	<div id="input">
		<input name="input1" value="Появился1">
		<input name="input2" value="Появился2">
	</div>
	<script type="text/javascript">
		function arrayInput() {
			return document.getElementById('input').getElementsByTagName('input');
		}
		function inputStyle(key) {
			return arrayInput()[key].style;
		}
		function inputToggle(val) {
			for(var i in arrayInput()) {
				if(true===val || i==val) {
					inputStyle(i).display='block';
				} else {
					inputStyle(i).display='';
				}
			}
		}
		function fifeno(self) {
			if('no'==self.value) {
				inputToggle(0);
			} else if('?'==self.value) {
				inputToggle();
			} else if('two'==self.value) {
				inputToggle(true);
			} else {
				inputToggle(1);
			}
		}
	</script>
</body>
</html>

Последний раз редактировалось Your, 22.10.2012 в 16:19.
Ответить с цитированием
  #7 (permalink)  
Старый 22.10.2012, 16:08
Аватар для lord2kim
Профессор
Отправить личное сообщение для lord2kim Посмотреть профиль Найти все сообщения от lord2kim
 
Регистрация: 03.05.2011
Сообщений: 848

BLP,

<body>
	    <select name="PB2001" onchange="fifeno(this)">
        <option value="?">?</option>
	        <option value="no">no</option>
	        <option value="(BG) NFF LO">(BG) NFF LO</option>
	        <option value="(BG) NFF RX">(BG) NFF RX</option>
	        <option value="(AT) KKO LO">(AT) KKO LO</option>
	    </select>
	    <input name="input" id="input" value="Появился1">
	    <input name="input2" id="input2" value="Появился2">
	    <script type="text/javascript">
	        function fifeno(self) {
            var input=document.getElementById('input'), input2=document.getElementById('input2');
			
                  switch (self.value) {
                      case "no": { input.style.display = "block"; input2.style.display = "none"; break; }
                      case "?": { input.style.display = "none"; input2.style.display = "none"; break; }
                      default: { input.style.display = "none"; input2.style.display = "block"; break; }
                  }
	        }
	    </script>
	</body>
Ответить с цитированием
  #8 (permalink)  
Старый 22.10.2012, 16:22
BLP BLP вне форума
Интересующийся
Отправить личное сообщение для BLP Посмотреть профиль Найти все сообщения от BLP
 
Регистрация: 14.10.2012
Сообщений: 23

Пока попробовал код от lord2kim ...
почему-то вообще ни на что не реагирует (((

Ща попробую код от YOUR

--------------
2 минуты спустя...
Уряяя! lord2kim , спасибо. Все получилось по-Вашему. ))) Просто немного запутался в переменных и именах полей... (Здесь я упрощенно их писал, чтобы не путать, у себя полей больше и с другими именами (отличными от input1, 2 и т.д.)

Последний раз редактировалось BLP, 22.10.2012 в 16:27.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Скажите, а возможно ли вычислить максимальное значение массива? Solovei95 Общие вопросы Javascript 5 28.01.2012 11:46
В contains() не подставляется значение переменной Heger jQuery 2 11.12.2011 18:26
Значение переменной salex009 jQuery 1 05.12.2011 14:55
Выбрать элементы где значение атрибута меньше или больше заданного Neokortex jQuery 5 03.10.2011 13:23
Возможно ли выбрать такой элемент CSS pavvas jQuery 1 18.05.2011 08:43