Помогите сделать эффект с <td></td>(javascript)
|
|
jeki | Дата: Четверг, 20 Декабря 2012, 17:30 | Сообщение # 1 |
участник
Сейчас нет на сайте
| Всем привет.Я тут задался вопросом как при нажатии на <td></td> через onClick сделать чтоб отметилось радио.Вот пример: Code <form action="" method="post"> <table width="46%" border="0" align="center" cellspacing="0"> <tr> <td width="50%" height="25" onmouseover=\'this.bgColor="#0bda51"\' onmouseout=\'this.bgColor=""\'><input name="atak" type="radio" value="1" checked="checked">'.$atk1.'</td> <td width="50%" onmouseover=\'this.bgColor="#0bda51"\' onmouseout=\'this.bgColor=""\'><input name="atak" type="radio" value="2">'.$atk2.'</td> </tr> <tr> <td height="26" onmouseover=\'this.bgColor="#0bda51"\' onmouseout=\'this.bgColor=""\'><input name="atak" type="radio" value="3">'.$atk3.'</td> <td onmouseover=\'this.bgColor="#0bda51"\' onmouseout=\'this.bgColor=""\'><input name="atak" type="radio" value="4">'.$atk4.'</td> </tr> </table> <center><input name="submit" type="submit" value="Заменить" /></center> </form>
Поставьте + плизми
|
|
| |
Lord135 | Дата: Четверг, 20 Декабря 2012, 19:50 | Сообщение # 2 |
постоянный участник
Сейчас нет на сайте
| Это на ПХП али на JavaScript? А то что-то непонятно.
|
|
| |
jeki | Дата: Четверг, 20 Декабря 2012, 20:44 | Сообщение # 3 |
участник
Сейчас нет на сайте
| Тему читай javascript конечно же.
Поставьте + плизми
|
|
| |
Lord135 | Дата: Четверг, 20 Декабря 2012, 21:04 | Сообщение # 4 |
постоянный участник
Сейчас нет на сайте
| Тогда откуда это:
Quote (jeki) Code value="2">'.$atk2.'</td>
?Добавлено (20.12.2012, 20:55) --------------------------------------------- Примерно так:
Code var r=document.GetElementsByName('atak'); for(i=0;i<r.length;i++){ if(r[i].value=="Номер_атаки"){r[i].checked="checked";break;} } Добавлено (20.12.2012, 21:02) --------------------------------------------- И к стати, почему бы не использовать цикл для твоих блоков? Хотя-бы так:
Code echo ' <form action="" method="post"> <table width="46%" border="0" align="center" cellspacing="0">'; for($i=1;$i<=$количество_атак;$i++){ if($i==1){$checked="checked=\"checked\"";}else{$checked="";} echo ' <tr> <td width="50%" height="25" onmouseover=\'this.bgColor="#0bda51"\' onmouseout=\'this.bgColor=""\'><input name="atak" type="radio" value="'.$i.'" '.$checked.'>'.$atk1.'</td></tr> '; }
Как-то так...Добавлено (20.12.2012, 21:04) --------------------------------------------- А из $atk - сделать массив. Например:
Code $atk=array( 1=>"Атака 1",2=>"Атака 2",3=>"Атака 3",4=>"Атака 4" );
Сообщение отредактировал Lord135 - Четверг, 20 Декабря 2012, 20:50 |
|
| |
jeki | Дата: Пятница, 21 Декабря 2012, 13:24 | Сообщение # 5 |
участник
Сейчас нет на сайте
| Не учи ученого если так атаки нет выдаст -. Добавлено (21.12.2012, 13:24) --------------------------------------------- И вообще я просил указать document.что-то там.
Поставьте + плизми
|
|
| |
Lord135 | Дата: Пятница, 21 Декабря 2012, 17:22 | Сообщение # 6 |
постоянный участник
Сейчас нет на сайте
| jeki, Если учёный, то зачем тогда лазать по форумам и просить помощи? Добавлено (21.12.2012, 17:22) --------------------------------------------- jeki, И да. Если бы ты был более внимателен, то заметил бы, что в самом начале моего поста есть код по интересующему тебя вопросу.
|
|
| |
jeki | Дата: Пятница, 21 Декабря 2012, 19:07 | Сообщение # 7 |
участник
Сейчас нет на сайте
| Lord135,ладно. Code <script>function atak(num){var r=document.GetElementsByName('atak'); for(i=0;i<r.length;i++){ if(r[i].value==num){r[i].checked="checked";break;} } }</script><body bgcolor="#000000"><table border="0" align="center" cellspacing="0" style="background:#ffefd5;border-radius:15px;" withg="100%"><tr><td><center><h1><u>Изучение ТМ(НМ) - атаки</u><img src="img/items/TM.png"></h1><br /> Вы хотите использовать ТМ(НМ).Какую атаку заменить?</center> <form action="" method="post" name="lern"> <table width="46%" border="1" align="center" cellspacing="0" > <tr> <td width="50%" height="25" onmouseover='this.bgColor="#0bda51"' onmouseout='this.bgColor=""' onClick="atak(1);"><input name="atak" type="radio" value="1" checked="checked">Focus Punch</td> <td width="50%" onmouseover='this.bgColor="#0bda51"' onmouseout='this.bgColor=""' onClick="atak(2);"><input name="atak" type="radio" value="2">Focus Punch</td> </tr> <tr> <td height="26" onmouseover='this.bgColor="#0bda51"' onmouseout='this.bgColor=""' onClick="atak(3);"><input name="atak" type="radio" value="3">Calm Mind</td> <td onmouseover='this.bgColor="#0bda51"' onmouseout='this.bgColor=""' onClick="atak(4)"><input name="atak" type="radio" value="4">Flame Wheel</td> </tr> </table> <center><input name="submit" type="submit" value="Заменить" /></center> </form></td></tr></table></body></html>
Не работает сделал так.
Поставьте + плизми
|
|
| |
GECK | Дата: Пятница, 21 Декабря 2012, 19:36 | Сообщение # 8 |
заслуженный участник
Сейчас нет на сайте
| Название функции не должно совпадать с именем радиогруппы. Переименуй функцию, например в "checkAttack".
Всё гениальное просто. И хреново работает.
|
|
| |
jeki | Дата: Пятница, 21 Декабря 2012, 19:45 | Сообщение # 9 |
участник
Сейчас нет на сайте
| GECK, все равно не работает.
Поставьте + плизми
|
|
| |
Lord135 | Дата: Суббота, 22 Декабря 2012, 17:23 | Сообщение # 10 |
постоянный участник
Сейчас нет на сайте
| Но тем-не-менее у тебя в подписи красуется "Гильдия программистов". Добавлено (22.12.2012, 17:23) --------------------------------------------- Возможно стоит попробовать так:
Код цикл for if(document.имя_формы.r[i].value==нужное_значение){...твой код...} //например: if(document.lern.r[i].value==num){...код...} end цикл for
|
|
| |
Talco | Дата: Суббота, 22 Декабря 2012, 20:56 | Сообщение # 11 |
почетный гость
Сейчас нет на сайте
| Код function checkRadio(id){ var obj = document.getElementsByName('atak'); obj[id].checked = true; } Код <td onclick="checkRadio(2);"><input name="atak" type="radio" value="3">blabla</td>
xNova: Революция
|
|
| |
jeki | Дата: Суббота, 22 Декабря 2012, 21:53 | Сообщение # 12 |
участник
Сейчас нет на сайте
| Lord135, я в javascript не силен те в нем я нуб.
Поставьте + плизми
|
|
| |