всем привет можно ли сделать что бы конкретному чекбоксу поставилась галка - при нажатии по ссылке с якорем ? чекбоксы все с разными id и все по умолчанию закрыты, на них можно кликнуть и отметить. ссылкой хотел сделать что бы из оглавления сайта можно было поставить галочку чекбоксу, и ссылка якорь переместить пользователя к этому чекбоксу.
с этим способом не установился чекбокс единственный вариант, работает только криво в нем надо галку отметить вручную, даже если её отметить в коде как checked можно ли постоянно нажатую галку сделать?, у меня стоит запоминание чекбоксов в cookie, и даже если на другой странице он отмечен, при клике должна метка передаваться что он отмеченый и в новой странице всегда выбраный чекбокс Code: <input type="checkbox" id="mycheckbox" value=""><a href="/sitepage#url" target="_blank" onClick="document.getElementById('mycheckbox').checked=true">ссылка</a>
Все просто $('#ид_твоей_ссылки').on('click', function(){ $('#ид_твоего_чекбоска').prop('checked',true); })
правильно ли я понял ? размещение на странице где ссылка: Code: <script> $('url').on('click', function(){ $('mycheckbox').prop('checked',true); }) </script> <a href="/4ekbox.html" id="url" target="_blank">ссылка</a> страница с чекбоксом: Code: <script> $('url').on('click', function(){ $('mycheckbox').prop('checked',true); }) </script> <input type="checkbox" id="mycheckbox">
crystalbit, Спасибо! На одной странице отлично работает! )) данный метод на другие страницы не действует ? пробовал к ярорю в Url дописывать другую страницу, на другой странице чекбокс не ставился .. ((
Если я правильно понял, то ссылка и чекбокс находятся на разных страницах... Тогда, на странице с ссылкой и выполнять ничего не нужно. И клик не стоит отслеживать. А на странице с чекбоксом (сразу после загрузки) парсить якорь и отмечать соответствующий checkbox. Например: Code: $(document).ready(function() { var anchor = window.location.hash; if (anchor == 'expected_hash') { $('#mycheckbox').prop('checked', true); } });
EduAffiliates, у меня почему то не отмечает галочку, может быть не ту jquery подключил ? https://jsfiddle.net/cjm06h6f/
так у тебя в адресе должно быть #checkbox1 в конце, и всё сработает. Тут уже попробуй не на jsfiddle) А на php не думал сделать передачу параметра? Этот вариант более надёжен по отношению к старым браузерам и отключённого js у клиента
я сделал тест в html файлах на локалхосте https://dropmefiles.com/dFsrI в них не работает (( на php наверное можно двумя путями, через get и через cookie реализовал вот так: Code: <input type='checkbox' name='type' id='check'> <script> delete anchor; var anchor = location.hash.replace(/^#/, ''); if (anchor == 'checkbox1') { document.getElementById('check').checked=true; } else { document.getElementById('check').checked=false; }; delete anchor; </script> работает, для профилактики ещё прописал два раза delete anchor; так как чекбоксов много, что бы значения удалялись после выполнения скрипта и друг другу не мешали
window.location.hash возвращает якорь вместе с решеткой. То-есть expected_hash в твоем скрипте должен быть '#checkbox1', а не 'checkbox1'. Так всё работает)
Спасибо EduAffiliates ! Работает быстро и эффективно, с запоминанием checkbox в cookie дружит. Я так понял, что реализовать нажатие чекбокса на одной странице без перезагрузки нельзя ? то есть если ссыла расположена вверху страницы, а её якорь ведёт в низ этой же старницы, и там чекбокс без галочки, то он не отметится ? up реализовал вот так, работает и в мобильных браузерах: Code: <a href="page.html#anchor" onClick="check('mycheckbox); return false;">url</a> <br><br> <p><input type="checkbox" id="mycheckbox" value=""> <script> function check(aid){ var i = document.getElementById(aid).checked; if(i == true) { document.getElementById(aid).checked = true; }else{ document.getElementById(aid).checked = true; } } </script>