нажать checkbox при клике по ссылке

Discussion in 'PHP' started by dondy, 12 Oct 2015.

  1. dondy

    dondy Member

    Joined:
    5 Jun 2015
    Messages:
    560
    Likes Received:
    61
    Reputations:
    5
    всем привет
    можно ли сделать что бы конкретному чекбоксу поставилась галка - при нажатии по ссылке с якорем ?
    чекбоксы все с разными id и все по умолчанию закрыты, на них можно кликнуть и отметить.
    ссылкой хотел сделать что бы из оглавления сайта можно было поставить галочку чекбоксу, и ссылка якорь переместить пользователя к этому чекбоксу.
     
  2. avin

    avin Member

    Joined:
    4 Jul 2011
    Messages:
    103
    Likes Received:
    41
    Reputations:
    2
    Code:
    $(твоя ссылка).on('click', function(){
        $(твой_чекбокс).prop('checked',true);
    })
    
     
  3. dondy

    dondy Member

    Joined:
    5 Jun 2015
    Messages:
    560
    Likes Received:
    61
    Reputations:
    5
    с этим способом не установился чекбокс

    единственный вариант, работает только криво

    в нем надо галку отметить вручную, даже если её отметить в коде как checked

    можно ли постоянно нажатую галку сделать?, у меня стоит запоминание чекбоксов в cookie, и даже если на другой странице он отмечен, при клике должна метка передаваться что он отмеченый и в новой странице всегда выбраный чекбокс
    Code:
    <input type="checkbox" id="mycheckbox" value=""><a href="/sitepage#url" target="_blank" onClick="document.getElementById('mycheckbox').checked=true">ссылка</a>
     
  4. EleGant1

    EleGant1 New Member

    Joined:
    18 Oct 2015
    Messages:
    3
    Likes Received:
    0
    Reputations:
    0
    Все просто

    $('#ид_твоей_ссылки').on('click', function(){
    $('#ид_твоего_чекбоска').prop('checked',true);
    })
     
  5. dondy

    dondy Member

    Joined:
    5 Jun 2015
    Messages:
    560
    Likes Received:
    61
    Reputations:
    5
    правильно ли я понял ?
    размещение на странице где ссылка:
    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">
     
  6. EleGant1

    EleGant1 New Member

    Joined:
    18 Oct 2015
    Messages:
    3
    Likes Received:
    0
    Reputations:
    0
    не
    $('url')
    а
    $('#url')
     
  7. Z0diac

    Z0diac New Member

    Joined:
    8 Aug 2012
    Messages:
    19
    Likes Received:
    2
    Reputations:
    0
    Ну и $('#mycheckbox') тогда наверно.
     
  8. dondy

    dondy Member

    Joined:
    5 Jun 2015
    Messages:
    560
    Likes Received:
    61
    Reputations:
    5
    поправил
    но при переходе по ссылке, чекбокс не отмечается ;(
     
  9. crystalbit

    crystalbit Elder - Старейшина

    Joined:
    6 Jun 2008
    Messages:
    212
    Likes Received:
    88
    Reputations:
    8
    сделай в jsfiddle и ссылку сюда
     
  10. dondy

    dondy Member

    Joined:
    5 Jun 2015
    Messages:
    560
    Likes Received:
    61
    Reputations:
    5
  11. crystalbit

    crystalbit Elder - Старейшина

    Joined:
    6 Jun 2008
    Messages:
    212
    Likes Received:
    88
    Reputations:
    8
  12. dondy

    dondy Member

    Joined:
    5 Jun 2015
    Messages:
    560
    Likes Received:
    61
    Reputations:
    5
    crystalbit, Спасибо!
    На одной странице отлично работает! ))
    данный метод на другие страницы не действует ? пробовал к ярорю в Url дописывать другую страницу, на другой странице чекбокс не ставился .. ((
     
  13. ol1ver

    ol1ver Active Member

    Joined:
    22 Jul 2011
    Messages:
    237
    Likes Received:
    155
    Reputations:
    0
    Нет, не сработает(наверняка ещё страницы на чужом сайте)
     
  14. EduAffiliates

    EduAffiliates Member

    Joined:
    27 Jun 2015
    Messages:
    16
    Likes Received:
    8
    Reputations:
    2
    Если я правильно понял, то ссылка и чекбокс находятся на разных страницах...

    Тогда, на странице с ссылкой и выполнять ничего не нужно. И клик не стоит отслеживать.
    А на странице с чекбоксом (сразу после загрузки) парсить якорь и отмечать соответствующий checkbox.
    Например:

    Code:
    $(document).ready(function() {
        var anchor = window.location.hash;
        if (anchor == 'expected_hash') {
            $('#mycheckbox').prop('checked', true);
        }
    });
     
    dondy likes this.
  15. dondy

    dondy Member

    Joined:
    5 Jun 2015
    Messages:
    560
    Likes Received:
    61
    Reputations:
    5
  16. crystalbit

    crystalbit Elder - Старейшина

    Joined:
    6 Jun 2008
    Messages:
    212
    Likes Received:
    88
    Reputations:
    8
    так у тебя в адресе должно быть #checkbox1 в конце, и всё сработает. Тут уже попробуй не на jsfiddle)

    А на php не думал сделать передачу параметра? Этот вариант более надёжен по отношению к старым браузерам и отключённого js у клиента
     
    EduAffiliates likes this.
  17. dondy

    dondy Member

    Joined:
    5 Jun 2015
    Messages:
    560
    Likes Received:
    61
    Reputations:
    5
    я сделал тест в 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;
    так как чекбоксов много, что бы значения удалялись после выполнения скрипта и друг другу не мешали
     
    #17 dondy, 22 Oct 2015
    Last edited: 23 Oct 2015
  18. EduAffiliates

    EduAffiliates Member

    Joined:
    27 Jun 2015
    Messages:
    16
    Likes Received:
    8
    Reputations:
    2
    window.location.hash возвращает якорь вместе с решеткой.
    То-есть expected_hash в твоем скрипте должен быть '#checkbox1', а не 'checkbox1'.
    Так всё работает)
     
    dondy likes this.
  19. dondy

    dondy Member

    Joined:
    5 Jun 2015
    Messages:
    560
    Likes Received:
    61
    Reputations:
    5
    Спасибо 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>
     
    #19 dondy, 23 Oct 2015
    Last edited: 23 Oct 2015
  20. EduAffiliates

    EduAffiliates Member

    Joined:
    27 Jun 2015
    Messages:
    16
    Likes Received:
    8
    Reputations:
    2
    Почему нельзя. Уже ж рассматривали вверху этот вариант.

     
    dondy likes this.
Loading...
Similar Threads - нажать checkbox клике
  1. GAiN
    Replies:
    3
    Views:
    7,768