Как сделать что бы при нажатии на checkbox появлялись бы текст. поля?

Bboy

Новичок
Как сделать что бы при нажатии на checkbox появлялись бы текст. поля?

Есть чекбокс. Под ним идут разные эл-ты: лист боксы, кнопки...., надо что бы при нажатии на чекбокс между ним и всеми этими элементами появлись бы текстовые поля. Как это можно сделать?:confused:
 

newcss

Guest
А событиями и слоями пользоваться умеешь ? Текстовое поле помешаешь в слой, что типа тега <DIV ID="sloj"> и указываешь атрибуты и типа visible: none;..... а на чекбоксе код пишешь события что вроде OnClick="sloj.visible=true"; посмотри хелпу по слоям.... думаю, алгоритм понятен =)
 

hoster

Guest
1. создаешь скрытый слой <div id=textform1 style='visibility:hidden;display:none'>Тут размещаешь всё что тебе нужно</div>. причем для IE && NS аттрибуты visibility разные.

2. на чекете пишишь

onchange="javascript:error_on('textform1'); if (this.value=='') error_off('textform1') "

3. И на JAVA пишишь

function error_on(id) {
var id;
document.all[id].style.visibility="hidden";
document.all[id].style.display="none";

}

function error_off(id) {
var id;
document.all[id].style.visibility="visible";
document.all[id].style.display="block";

}


Вот такой простой-быстрый пример. Разбирайся!
 

Tigr

Новичок
делай блок в котором будут скрытые элементы (table, div, p ...) и в нем style="display:none", т.е. <table id="htb1" style="display:none">...

затем в checkbox onClick="show(this.checked)"

function show(action)
{
document.getElementById('htb1').style.display = action?'block':none;
}

-~{}~ 16.06.04 17:05:

>>hoster И на JAVA пишишь

не путайте людей, они ведь вам могут поверить
 

IL78

Guest
Bboy, если я правильно понял, те элементы формы, которые по дефолту под чекбоксом, при появлении дополнительных полей должны вниз сместиться? Если так - слои не нужны. Только переопределять display, как пишет Tigr.

hoster, извини, но твой пример устарел года на 3. NS вместе со своими нестандарнтными атрибутами давно умер, а document.all уступил место document.getElementById() - в отличие от all, оно работает и в Мозилле, и в Опере. А visibility="hidden", если и так display="none" - ненужная перестраховка.
 

Bboy

Новичок
Originally posted by Tigr
делай блок в котором будут скрытые элементы (table, div, p ...) и в нем style="display:none", т.е. <table id="htb1" style="display:none">...

затем в checkbox onClick="show(this.checked)"

function show(action)
{
document.getElementById('htb1').style.display = action?'block':none;
}

Спасибо большое, заработало!!!
:D :D :D
Только вот одно маленькое "но"! Страница загрузилась, нажал я на чекбоксе, все что надо появилось (причем нижние элементы съехали как и надо!), потом еще раз нажал... в левом нижнем углу IE появляется сообщение об ошибке. Как это можно исправиьт в сторону того, что бы при "выключении" чекбокса <table id="htb1"... становилось бы снова невидимой??? Ну или в крайнем случае хотя бы что бы ошибки не было.
 

IL78

Guest
Bboy,

...display = action?'block':'none';

('none' тоже должно быть в кавычках)
 
Сверху