За последние 24 часа нас посетил 22791 программист и 1703 робота. Сейчас ищут 1728 программистов ...

Js, checkbox

Тема в разделе "JavaScript и AJAX", создана пользователем Horus1613, 9 июл 2018.

  1. Horus1613

    Horus1613 Новичок

    С нами с:
    25 май 2017
    Сообщения:
    34
    Симпатии:
    0
    HTML:
    1. <input type="checkbox" name="ch" />
    2. <span id="ch">TEST</span>
    Код (Javascript):
    1. .ready(function() {
    2.             var ch1 = $('#ch'), ch2 = $('input[name="ch"]');
    3.                 ch2.checked ? ch1.show() : ch1.hide();
    4.  
    5.                 if ( this_hash ) $(window).trigger('hashchange');
    6.  
    7.                 $('.clickselect').click(function() {
    8.                         $(this).selectText();
    9.                 });
    10.         })
    11.         on('change', 'input[name="ch"]', function() {
    12.                 ch1 = $('#ch');
    13.                 this.checked ? ch1.show() : ch1.hide();
    14.         })
    День добрый. Прошу помощи. В указанном коде при выборе checkbox появляется текст TEST. Все работает, но если изначально при загрузке страницы checkbox уже выбран, то текст не виден, и появляется только при установке/снятии флажка.
     
  2. Sail

    Sail Старожил

    С нами с:
    1 ноя 2016
    Сообщения:
    1.593
    Симпатии:
    362
    @Horus1613, потому что ch2 получает все элементы, удовлетворяющие селектору 'input[name="ch"]'.
    И проверять надо, например, ch2[0].checked, предварительно убедившись в его (элемента и индексом 0) существовании.
     
  3. TeslaFeo

    TeslaFeo Старожил

    С нами с:
    9 мар 2016
    Сообщения:
    2.984
    Симпатии:
    759
    еретик блэт)
    функция висит на событии изменения чекбокса. Если изменения нет, то она и не запускается.
    --- Добавлено ---
    вот это что-то странное. Метод висит в воздухе
     
  4. Sail

    Sail Старожил

    С нами с:
    1 ноя 2016
    Сообщения:
    1.593
    Симпатии:
    362
    @TeslaFeo, суть в том, что в 3-й строчке ch2.checked имеет значение undefined в любом случае...
    Просто ТС пропустил $('document') в начале первой строчки :)
    --- Добавлено ---
    и в 11-й недокопировал id или class родительского элемента, например...:D
     
    TeslaFeo нравится это.
  5. TeslaFeo

    TeslaFeo Старожил

    С нами с:
    9 мар 2016
    Сообщения:
    2.984
    Симпатии:
    759
    Код (Javascript):
    1. ch2.prop('checked') ? ch1.show() : ch1.hide();