Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

HTML+CSS+JavaScript

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Помогите дописать ф-ию скрытия и показа слоя с полем формы
 
 автор: provodnik   (08.10.2007 в 15:52)   письмо автору
 
 

Доброго времени суток. Помогите пожалуйста с кодом (код с этой страницы: http://softtime.ru/forum/read.php?id_forum=4&id_theme=36473).

<select name="Category" onchange="selectCategory()"> 
<option value="0">Програмирование</option> 
<option value="-1">Другая</option> 
</select> 
<div id="hiddenField" style="display:none;"><input type="text" name="info"></div>

<script> 
function selectCategory() 

  var cat = document.getElementById("Category").value; 
  if(cat == -1) 
    document.getElementById("hiddenField").style.display = ""; 

</script>

При выборе определенного варианта показывается дополнительное поле, которое изначально скрыто.
Очень хотелось бы, что бы при выборе другого варианта, это поле опять бы скрывалось.
Спасибо за ранее...

   
 
 автор: AlexSol   (08.10.2007 в 15:56)   письмо автору
 
   для: provodnik   (08.10.2007 в 15:52)
 

if(cat == -1) {
document.getElementById("hiddenField").style.display = "";
}else{
document.getElementById("hiddenField").style.display = "none";
}

   
 
 автор: provodnik   (08.10.2007 в 16:28)   письмо автору
 
   для: AlexSol   (08.10.2007 в 15:56)
 

Спасибо, то что нужно.
Но теперь другая проблема:
Как мне совместить несколько таких "селектов" в одной форме? Есть какой-либо более менее универсальный вариант? Или нужно для каждого селекта вписывать данную ф-ию, предварительно изменив значения переменных?

Пишу скрипт знакомств. И при заполнении анкеты огромадная форма.
И очень много таких селектов, например:
Отношение к курению: Да, Нет, Другое... И вот по нажатию на "другое" планирую показывать текстовое поле с вводом произвольного текста, которое предварительно скрыто.

Спасибо заранее...

   
 
 автор: sim5   (08.10.2007 в 16:51)   письмо автору
 
   для: provodnik   (08.10.2007 в 16:28)
 

А что нельзя обойтись ввоще тогда без селекта?

Отношение к курению: <textarea></textarea>

И пусть пишут. Что в этом поле нельзя написать: "Да", "Нет" или "Уже 10 лет как бросил, но хочется."?

   
 
 автор: provodnik   (08.10.2007 в 16:57)   письмо автору
 
   для: sim5   (08.10.2007 в 16:51)
 

Ээх...

   
 
 автор: sim5   (08.10.2007 в 17:07)   письмо автору
 
   для: provodnik   (08.10.2007 в 16:57)
 

Ухх... Что, так не катит?

   
 
 автор: bronenos   (08.10.2007 в 18:03)   письмо автору
 
   для: sim5   (08.10.2007 в 16:51)
 

чем type="text" не катит

   
 
 автор: AlexSol   (08.10.2007 в 18:14)   письмо автору
 
   для: provodnik   (08.10.2007 в 16:28)
 

<select name="Category_1" onchange="selectCategory(1)">
<option value="0">Програмирование</option>
<option value="-1">Другая</option>
</select>
<div id="hiddenField_1" style="display:none;"><input type="text" name="info"></div>

<script>
function selectCategory(num)
{
var cat = document.getElementById("Category_"+num).value;
if(cat == -1) {
document.getElementById("hiddenField_"+num).style.display = "";
}else{
document.getElementById("hiddenField_"+num).style.display = "none";
}
}
</script>

   
 
 автор: sim5   (08.10.2007 в 18:42)   письмо автору
 
   для: AlexSol   (08.10.2007 в 18:14)
 

Небольшое отступление: Вроде бы на Mail.ru в анкетах знакомств написано:
Цвет волос на голове: цвет волос
Это при том, что не указано цвета волос в иных частях тела, а наверное надо было бы, при такой постановке вопроса :)
Зачем опрос превращать в телешоу, где даются варианты ответов? Зачем давать повод думать пользователю, что он полный идот?

   
 
 автор: provodnik   (09.10.2007 в 09:58)   письмо автору
 
   для: sim5   (08.10.2007 в 18:42)
 

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

AlexSol - Спасибо за функцию.

   
 
 автор: sim5   (09.10.2007 в 10:02)   письмо автору
 
   для: provodnik   (09.10.2007 в 09:58)
 

А я разве грубил? У нас демократическая страна, я просто высказался :)

   
 
 автор: provodnik   (09.10.2007 в 10:28)   письмо автору
 
   для: sim5   (09.10.2007 в 10:02)
 

sim5 - А я и сам прекрасно понимаю, что форма, которую я щас проектирую полный бред: сто полей, у каждого несколько вариантов возможных значений, плюс дополнительное - свободное... Ересь, но ничего не поделаешь. Спорить и что-то доказывать и объяснять клиенту не стал. Нет уже сил с ними заниматься...

AlexSol - есть ли возможность как то по другому инициализировать селекты а не по ("Category_"+num). Может по какому-то регулярному выражению ).
А то у моих ста полей есть имена (сочетаемые с филдами в БД). А если я из имен сделаю числовые индексы, то это сколько лишних переменных придется окультуривать...
Заранее спасибо..

   
 
 автор: AlexSol   (09.10.2007 в 10:58)   письмо автору
 
   для: provodnik   (09.10.2007 в 10:28)
 


<select name="Category" onchange="selectCategory('Category')"> 
<option value="0">Програмирование</option> 
<option value="-1">Другая</option> 
</select> 
<div id="Category" style="display:none;"><input type="text" name="info"></div> 

<script> 
function selectCategory(name) 

var cat = document.getElementById(name).value; 
if(cat == -1) {
document.getElementById(name).style.display = ""; 
}else{
document.getElementById(name).style.display = "none"; 
}

</script>

   
 
 автор: provodnik   (09.10.2007 в 11:13)   письмо автору
 
   для: AlexSol   (09.10.2007 в 10:58)
 

AlexSol - что то не воркает: При выборе "-1" нет изменений, а при возврате на value="0" исчезает сам селект.
Вы уж простите меня - ну не соображаю я в JS. И так поменяю значения переменных, и так... Нифига...
Если я не надоел еще - посмотрите, что можно сделать с этой ф-ией. А то я уже на грани маниакально-депрессивного психоза... Вплоть хоть отказывайся от этого....

   
 
 автор: AlexSol   (09.10.2007 в 11:25)   письмо автору
 
   для: provodnik   (09.10.2007 в 11:13)
 

присвоить индексы только дивам, которые прятать надо


<select name="Category" id="Category" onchange="selectCategory('Category')">  
<option value="0">Програмирование</option>  
<option value="-1">Другая</option>  
</select>  
<div id="Category_1" style="display:none;"><input type="text" name="info"></div>  

<script>  
function selectCategory(name)  
{  
var cat = document.getElementById(name).value;  
if(cat == -1) { 
document.getElementById(name+'_1').style.display = "";  
}else{ 
document.getElementById(name+'_1').style.display = "none";  

}  
</script> 

   
 
 автор: provodnik   (09.10.2007 в 11:58)   письмо автору
 
   для: AlexSol   (09.10.2007 в 11:25)
 

AlexSol - спасибо, всё работает как надо. Просто чудненько...

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования