2015-09-15 4 views
0

У меня есть флажок, который я хочу контролировать видимость выпадающего списка под ним по статусу флажка.jQuery, не удалось установить флажок

<div class="coral-Form-fieldwrapper"> 
    <label class="coral-Checkbox"> 
     <input class="coral-Checkbox-input" id="select-all-namespaces" data-init="checkbox" checked data-type="checkbox" data-config-id="selectAll"> 
      <span class="coral-Checkbox-checkmark"></span> 
      <span class="coral-Checkbox-description">Select All</span> 
    </label> 
</div> 
<div class="coral-Form-fieldwrapper"> 
    <span class="coral-Select some-selection-class" data-init="select" data-config-id="tagNamespaces" name="tagNamespaces"> 
     <button type="button" class="coral-Select-button coral-MinimalButton"> 
      <span class="coral-Select-button-text">{{i18n "Select something"}}</span> 
     </button> 
     <select class="coral-Select-select" multiple="true"> 
      {{#each configOptions}} 
       <option value="{{encodeForHTMLAttr this.id}}">{{this.label}}</option> 
      {{/each}} 
     </select> 
    </span> 
</div> 

Это JavaScript, который управляет его:

var $an = $("#select-all-namespaces"); 
var $tn = $(".some-selection-class") 
if($an.data("default")) { // I broke point into this statement, made sure 'checked' prop set to true 
    $an.prop("checked", true); 
    $tn.hide(); 
} else { 
    $an.prop("checked", false); 
    $tn.show(); 
} 
$an.on("click", function() { 
    if($an.is(":checked")) { 
     $tn.hide(); 
    } else { 
     $tn.show(); 
    } 
}); 

Однако, флажок нагрузки по умолчанию, как «необузданный», после щелчка, раскрывающийся показывает вверх, но мой вопрос чекбокс может никогда не проверяться, поэтому выпадающее меню не исчезнет. Интересно, что мешает мне установить статус «проверено».

Вздох ... Скрипки, кажется, работает хорошо :(

http://jsfiddle.net/9cn2cLrx/

+0

Вы пробовали .attr ('checked', true) вместо prop? – Eric

+0

@ Эрик, они оба работают одинаково. –

+1

сделайте скрипку – Eric

ответ

1

Вот jsfiddle, который должен работать. Две вещи, которые я сделал, были, добавить type="checkbox" и добавить data-default="true" к #select-all-namespaces элементу. Это было не совсем понятно, какое поведение вы собираетесь, но вы можете изменить значение данных по умолчанию, чтобы изменить, если флажок установлен по умолчанию или нет.

https://jsfiddle.net/vryjpjhp/

+1

вы должны поместить эти запросы в комментарии, а не ответы. – fixmycode

+0

@mmilleruva, missing type = "checkbox" была моей проблемой, где-то в моем коде нужен data-type = "checkbox" тоже. Благодарим за идею. –

Смежные вопросы