|
|
|
| Доброго времени суток. Помогите пожалуйста с кодом (код с этой страницы: 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>
|
При выборе определенного варианта показывается дополнительное поле, которое изначально скрыто.
Очень хотелось бы, что бы при выборе другого варианта, это поле опять бы скрывалось.
Спасибо за ранее... | |
|
|
|
|
|
|
|
для: provodnik
(08.10.2007 в 15:52)
| | if(cat == -1) {
document.getElementById("hiddenField").style.display = "";
}else{
document.getElementById("hiddenField").style.display = "none";
} | |
|
|
|
|
|
|
|
для: AlexSol
(08.10.2007 в 15:56)
| | Спасибо, то что нужно.
Но теперь другая проблема:
Как мне совместить несколько таких "селектов" в одной форме? Есть какой-либо более менее универсальный вариант? Или нужно для каждого селекта вписывать данную ф-ию, предварительно изменив значения переменных?
Пишу скрипт знакомств. И при заполнении анкеты огромадная форма.
И очень много таких селектов, например:
Отношение к курению: Да, Нет, Другое... И вот по нажатию на "другое" планирую показывать текстовое поле с вводом произвольного текста, которое предварительно скрыто.
Спасибо заранее... | |
|
|
|
|
|
|
|
для: provodnik
(08.10.2007 в 16:28)
| | А что нельзя обойтись ввоще тогда без селекта?
Отношение к курению: <textarea></textarea>
|
И пусть пишут. Что в этом поле нельзя написать: "Да", "Нет" или "Уже 10 лет как бросил, но хочется."? | |
|
|
|
|
|
|
|
для: sim5
(08.10.2007 в 16:51)
| | Ээх... | |
|
|
|
|
|
|
|
для: provodnik
(08.10.2007 в 16:57)
| | Ухх... Что, так не катит? | |
|
|
|
|
|
|
|
для: sim5
(08.10.2007 в 16:51)
| | чем type="text" не катит | |
|
|
|
|
|
|
|
для: 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> | |
|
|
|
|
|
|
|
для: AlexSol
(08.10.2007 в 18:14)
| | Небольшое отступление: Вроде бы на Mail.ru в анкетах знакомств написано:
Цвет волос на голове: цвет волос
Это при том, что не указано цвета волос в иных частях тела, а наверное надо было бы, при такой постановке вопроса :)
Зачем опрос превращать в телешоу, где даются варианты ответов? Зачем давать повод думать пользователю, что он полный идот? | |
|
|
|
|
|
|
|
для: sim5
(08.10.2007 в 18:42)
| | Господа коллеги - я не просил подсказать логику действий, алгоритмы обработки и "как сделать лучше". Всегда есть много разных факторов, влияющих на ту или иную ситуацию. Перед тем, как сюда обратиться много думалось, смотрелись очень много аналогичных проектов, а может есть люди (клиенты), которые явно указали как делать эту работу... Я просто просил дописать код функции...
Не хотел показаться грубым...
AlexSol - Спасибо за функцию. | |
|
|
|
|
|
|
|
для: provodnik
(09.10.2007 в 09:58)
| | А я разве грубил? У нас демократическая страна, я просто высказался :) | |
|
|
|
|
|
|
|
для: sim5
(09.10.2007 в 10:02)
| | sim5 - А я и сам прекрасно понимаю, что форма, которую я щас проектирую полный бред: сто полей, у каждого несколько вариантов возможных значений, плюс дополнительное - свободное... Ересь, но ничего не поделаешь. Спорить и что-то доказывать и объяснять клиенту не стал. Нет уже сил с ними заниматься...
AlexSol - есть ли возможность как то по другому инициализировать селекты а не по ("Category_"+num). Может по какому-то регулярному выражению ).
А то у моих ста полей есть имена (сочетаемые с филдами в БД). А если я из имен сделаю числовые индексы, то это сколько лишних переменных придется окультуривать...
Заранее спасибо.. | |
|
|
|
|
|
|
|
для: 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>
|
| |
|
|
|
|
|
|
|
для: AlexSol
(09.10.2007 в 10:58)
| | AlexSol - что то не воркает: При выборе "-1" нет изменений, а при возврате на value="0" исчезает сам селект.
Вы уж простите меня - ну не соображаю я в JS. И так поменяю значения переменных, и так... Нифига...
Если я не надоел еще - посмотрите, что можно сделать с этой ф-ией. А то я уже на грани маниакально-депрессивного психоза... Вплоть хоть отказывайся от этого.... | |
|
|
|
|
|
|
|
для: 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>
|
| |
|
|
|
|
|
|
|
для: AlexSol
(09.10.2007 в 11:25)
| | AlexSol - спасибо, всё работает как надо. Просто чудненько... | |
|
|
|