|
|
|
| Есть список
0 - Главная страница
0 - Новости
0 - Галерея
0 обозначает радио кнопку
Принцип действия такой: выделяю нужную радио кнопку, нажимаю submit a далее на пхп проверяю что было выбрано...
Как можно убрать радио кнопку, чтобы не потерять её св-в. Например когда жмёшь на "Главная страница" надпись должна выделится жирным. А после этого можно отправить данные из формы нажав submit | |
|
|
|
|
|
|
|
для: Alexx
(27.05.2006 в 18:19)
| | Может выподающий список,? | |
|
|
|
|
|
|
|
для: Alexx
(27.05.2006 в 18:19)
| | Так примерно?
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<title>Test</title>
<script language="javascript">
<!--
function my_select(toRadio)
{
for(i=1; i<=3; i++)
{
loStyle=document.getElementById('span'+i);
loStyle.style.fontWeight="normal";
}
loStyle=document.getElementById('span'+toRadio.value);
loStyle.style.fontWeight="bold";
}
//-->
</script>
</head>
<body>
<form method="post" action="" name="frm1">
<input type="radio" name="rbtRadio" value="1" onclick="my_select(this);"> <span id="span1" style="font-weight: bold;">Главная страница</span><br>
<input type="radio" name="rbtRadio" value="2" onclick="my_select(this);"> <span id="span2" style="font-weight: normal;">Новости</span><br>
<input type="radio" name="rbtRadio" value="3" onclick="my_select(this);"> <span id="span3" style="font-weight: normal;">Галерея</span><br>
<br>
<input type="submit" value="Отправить" name="B1"><input type="reset" value="Сброс" name="B2"></p>
</form>
</body>
</html>
|
| |
|
|
|
|
|
|
|
для: targa
(27.05.2006 в 19:18)
| | Чуть чуть меня не поняли. Нужно чтобы не было radio а работало также. а для эфекта выдеения этот скрипт хорошо подходит
Есть ещё такая идея сделать <input name="id_page" type="hidden" value=""> и при клике на фразе Главная страница или Новости опровлять определённые данные в value id_page. Очень плохо знаю JS | |
|
|
|
|
|
|
|
для: Alexx
(27.05.2006 в 20:00)
| | Примерно так:
<html>
<head>
<script>
function f(x)
{
document.getElementById('_0').style.fontWeight= "normal";
document.getElementById('_1').style.fontWeight= "normal";
document.getElementById('_2').style.fontWeight= "normal";
x.style.fontWeight= "bold";
document.MyForm.MyRadio.value= x.firstChild.nodeValue;
}
</script>
</head>
<body>
<div id= "_0" onclick= "f(this)">Главная страница </div>
<div id= "_1" onclick= "f(this)">Новости</div>
<div id= "_2" onclick= "f(this)">Галерея</div>
<form action= "#" name= "MyForm">
<input type= "hidden" name= "MyRadio">
<input type= "submit">
</form>
</body>
</html>
|
ЗЫ
Лучше конечно попроще сделать: вместо x.firstChild.nodeValue написать x.id | |
|
|
|
|
|
|
|
для: RMW
(27.05.2006 в 20:14)
| | document.getElementById('_0').style.fontWeight= "normal";
document.getElementById('_1').style.fontWeight= "normal";
document.getElementById('_2').style.fontWeight= "normal";
каждый раз все элементы переводит в нормальный вид. А как упростить допустим если у меня сто полей. Не печатать же мне все ? Через цикл не предлогать. | |
|
|
|
|
|
|
|
для: Alexx
(27.05.2006 в 20:26)
| | Можно запомнить в глобальной переменной id выделенного элемента
и приводить к нормальному виду только этот один элемент.
Немного переделаем начало.
<html>
<head>
<script>
var idmemory;
function f(x)
{
if(idmemory)document.getElementById(idmemory).style.fontWeight= "normal";
idmemory= x.id;
...
|
| |
|
|
|
|
|
|
|
для: RMW
(27.05.2006 в 21:01)
| | Большое спасибо! RMW | |
|
|
|
|
|
|
|
для: Alexx
(27.05.2006 в 20:00)
| | >Чуть чуть меня не поняли. Нужно чтобы не было radio а
>работало также. а для эфекта выдеения этот скрипт хорошо
>подходит
Значит неверно понял :)
Ниже RMW написал как.
>Есть ещё такая идея сделать <input name="id_page"
>type="hidden" value=""> и при клике на фразе Главная
>страница или Новости опровлять определённые данные в value
>id_page. Очень плохо знаю JS
Ну можно и так (могу написать как сделать если нужно). Хотя имхо такая конструкция излишня. Нажми на ссылку птом на кнопку... Мне кажется все таки проще Новости, Галерею и т.д. сделать ссылками.
>каждый раз все элементы переводит в нормальный вид.
>А как упростить допустим если у меня сто полей.
>Не печатать же мне все ? Через цикл не предлогать.
Почему не предлагать? Циклы для этого и предназначены. Я обычно формирую строку с ID элементов (это РНР делает) и передаю ее в функцию JS а там через split разрезаю и получаю массив, в цикле оббежали все нужные элементы и сделали с ними то что нужно.
Но если у вас список ID не меняется, то проще и правда положить форму на странице с невидимым полем, поместить туда через запятую или точку с запятой список ИД и обрабатывать их. | |
|
|
|
|
|
|
|
для: targa
(28.05.2006 в 15:16)
| | >Почему не предлагать? Циклы для этого и предназначены. Я
>обычно формирую строку с ID элементов (это РНР делает) и
>передаю ее в функцию JS а там через split разрезаю и получаю
>массив, в цикле оббежали все нужные элементы и сделали с
>ними то что нужно.
Хорошо как вам такой список ID
1
2
3
125
98
10000
1239080
2308908099890
209380989080989
:)
Сообственно сколько будет цикл считать ? Последний ID.
Тему можно закрывать... | |
|
|
|
|
|
|
|
для: Alexx
(28.05.2006 в 16:57)
| | Вы не поняли что я вам предлагал.
можете так
... onclick="my_func(this, '1;2;3;125;98;10000;1239080;2308908099890;209380989080989');"...
|
в JS-коде
function my_func(toObj, tcList)
{
laAll=tcList.split(';');
for (i=0; i < laAll.length; i++)
{
loCurStyle=document.getElementById('id'+laAll[i]).style;
// loCurStyle - ссылка на style текущего объекта, тут уже можете как хотите манипулировать
}
}
|
или если у вас список ID не меняется, то тогда на странице так
<form name="frmMyForm">
<input name="txtAllID" type="hidden" value="1;2;3;125;98;10000;1239080;2308908099890;209380989080989">
</form>
|
в JS коде
tcList=document.forms["frmMyForm"].txtAllID.value;
|
и дальше как в пред. примере.
Хотя может есть и более изящные решения. | |
|
|
|