Отметка checkbox'a через href

Вопрос к знатокам JAVA

#1 15 октября 2014 в 22:59
Приветствую! )
Столкнулся с ситуацией: нужно, что бы по нажатию ссылки, отмечался определенный чекбокс, а при повторном нажатии, на эту же ссылку он становился бы пустым. Наполовину вопрос решил:
  1.  
  2. <p><input type="checkbox" id="ck1" value="">
  3. <a href="#" onClick="document.getElementById('ck1').checked=true">forum</a>
  4. <p><input type="checkbox" id="ck2" value="">
  5. <a href="#" onClick="document.getElementById('ck2').checked=true">site</a>
  6. <p><input type="checkbox" id="ck3" value="">
  7. <a href="#" onClick="document.getElementById('ck3').checked=true">game</a>
  8.  
А вот с повторным нажатием не могу решить вопрос.
Поможите, кто знает! )
#2 16 октября 2014 в 00:19
Serg, зачем нужен js, когда для этого есть тэг <label>?
  1.  
  2. <label for="chk1"><input type="checkbox" id="chk1" />Checkbox 1</label>
  3.  
Ну и в принципе, тэг <a> для этого не предназначен.
#3 16 октября 2014 в 06:58
Для повторного нажатия используется toogle(). А использовать onClick — плохая практика.
#4 16 октября 2014 в 08:47
Можно примерно так. Быстренько на коленках.
  1.  
  2. <p><input type="checkbox" id="ck1" value="">
  3. <a href="#" onClick="check('ck1'); return false;">forum</a>
  4. <p><input type="checkbox" id="ck2" value="">
  5. <a href="#" onClick="check('ck2'); return false;">site</a>
  6. <p><input type="checkbox" id="ck3" value="">
  7. <a href="#" onClick="check('ck3'); return false;">game</a>
  8. <script>
  9. function check(aid){
  10. var i = document.getElementById(aid).checked;
  11. if(i == true) {
  12. document.getElementById(aid).checked = false;
  13. }else{
  14. document.getElementById(aid).checked = true;
  15. }
  16. }
  17. </script>
  18.  
#5 16 октября 2014 в 09:31
Согласен с airy для чего использовать jquery или js для того что можно сделать и без него, а что делать если пользователь отключил скрипты?
#6 16 октября 2014 в 09:54
maxisoft, ) предложить включить
#7 16 октября 2014 в 10:50
maxisoft, airy, Да, вариант с <LABEL> был, но искал альтернативный, т.к. реально вместо ссылок HREF у меня используется изображение с <AREA>. Где то прочитал, что связка<label><area .....></label> не работает с некоторыми более-менее старыми браузерами. Хотя может и зря заморачиваюсь. )))
Марат, Спасибо, все работает! )
Всем огромное спасибо за поддержку! )
#8 16 октября 2014 в 16:57
Serg, а расскажите пожалуйста о задаче. Интересно, можно ли это решить другими способами.
#9 16 октября 2014 в 20:38

Согласен с airy для чего использовать jquery или js для того что можно сделать и без него, а что делать если пользователь отключил скрипты ?

maxisoft
Ну, если у пользователя выключены скрипты, то он скорее всего и не дойдет до нашей страницы. На сайте на Инстанте ему будет скучно, он не сможет добавить коммент, удалить пост в блоге, написать на стене пользователя, фильтровать список юзеров и ещё кучу плюшек… В полной мере ему будет недоступно меню… smile
Да и вообще интернет ему будет скучен. Без аякса.
Вдобавок, допустим в фаерфоксе отключить скрипты, ему ещё нужно постараться…
Считаю, что отключенный js — это в прошлом, когда все подряд советовали отключать js, графику, элементы activex… Да и антивирусов ни у кого не было. Поэтому, лично я не заморачиваюсь по этому поводу.
Полность мое субъективное имхо smileИзвечная тема для споров, истина где-то посередине. Впрочем, как и IE6
#10 16 октября 2014 в 22:44
maxisoft, можно и так: а если это текстовый браузер?

Марат, а если идет борьба за посетителя?
Плодятся варианты привлечения пользователей через разные гаджеты… И вам полноценный, и урезанный, и для мобилы, адаптивный, rss и т.д. и т.п. А что нам мешает БЕЗДЖАВАСКРИПТНЫЙ вариант шаблона выложить )))
#11 16 октября 2014 в 22:54

а что делать если пользователь отключил скрипты ?

maxisoft
вывести такому пользователю надпись "сам виноват!" ))
при этом скрыть полностью весь контент.
Вы не можете отвечать в этой теме.
Войдите или зарегистрируйтесь, чтобы писать на форуме.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.