изменить флажок attr, если первый флажок установлен

0

Я хочу показать/скрыть флажок, проверив, установлен ли первый флажок.

Код:

$j('#main_share').bind("click", function() {

        if( $j(this).is(':checked') ) {
            //check ext_share box
            $j('#allow_ext_share').attr('checked', true);
            //show ext_share box    
            $j('#ext_share_li').show(); 

        } else {

            //hide ext_share box    
            $j('#ext_share_li').hide(); 
            //uncheck ext_share box
            $j('#allow_ext_share').attr('checked', false); 
        }                       

});

Когда я сниму флажок, все работает так, как ожидалось, но если я перепроверяю его, флажок будет отображаться снова, но не будет проверен?

ВОПРОС: Как установить флажок, когда он снова появится.

  • 3
    используйте .prop() вместо $j('#allow_ext_share').prop('checked', true);
Теги:

2 ответа

4
Лучший ответ

Вы должны использовать prop вместо attr:

$j('#allow_ext_share').prop('checked', true);
//Later
$j('#allow_ext_share').prop('checked', false); 

Также можно уменьшить код:

$j('#main_share').bind("click", function() {
    $j('#allow_ext_share').prop('checked', this.checked); 
    $j('#ext_share_li').toggle(this.checked);   
});
  • 1
    Работал . Спасибо. отметится через "11" мин.
  • 0
    #ext_share_li на самом деле <li> содержит флажок (#allow_ext_share), который я хочу скрыть / показать, но я вижу, что вы пытаетесь сделать, и сделает его короче. ти.
Показать ещё 2 комментария
0

Измените attr на prop

$j('#allow_ext_share').prop('checked', true);
  • 0
    отмечая ответ Карла как полный, как он ответил 14 секундами ранее: P .. но спасибо.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню