2015-09-10 3 views
2

Я пытаюсь установить флажок, используя JQuery, но безрезультатно. Ниже приведен код.checkbox не проверяет через jQuery

$(document).ready(function() { 
    var url_brand_alias = $("#hidden_brand_alias").val(); //gives a,b 
    var url_brand_arr = url_brand_alias.split(','); 
    $.each(url_brand_arr, function(key, value) { 
     $('input.Brand[rel="'+value+'"]').attr('checked', true); 
    }); 
}); 

Checkbox HTML:

<div class="panel-body"> 
    <div class="form-group"> 
     <label class="filters-type"> 
      <input type="checkbox" rel="a" value="1" class="Brand">a</label> 
     </div> 
    <div class="form-group"> 
     <label class="filters-type"><input type="checkbox" rel="b" value="2" class="Brand">b</label> 
    </div> 
</div> 

Я попытался использовать как атр и пропеллер, но безрезультатно. У меня также нет ошибок в консоли. Любая помощь/предложения приветствуются. Заранее спасибо.

+5

Покажите нам значение 'url_cat_arr'. Это опечатка? Это значит быть «url_brand_arr»? –

+0

Можете ли вы включить скрипт или JSBin в свой код? – Drown

+0

извините, это просто ошибка типографии. –

ответ

0

Просто добавив простую строку url_brand_alias = "a,b"; дает желаемый результат, предлагая $("#hidden_brand_alias").val(); //gives a,b на самом деле не возвращает "a,b", как ожидалось. Подумайте об этом.

$(document).ready(function() { 
 
    var url_brand_alias = $("#hidden_brand_alias").val(); //gives a,b 
 
    url_brand_alias = "a,b"; 
 
    var url_brand_arr = url_brand_alias.split(','); 
 
    $.each(url_brand_arr, function(key, value) { 
 
     $('input.Brand[rel="'+value+'"]').attr('checked', true); 
 
    }); 
 
});
<div class="panel-body"> 
 
    <div class="form-group"> 
 
     <label class="filters-type"> 
 
      <input type="checkbox" rel="a" value="1" class="Brand">a 
 
     </label> 
 
    </div> 
 
    <div class="form-group"> 
 
     <label class="filters-type"> 
 
      <input type="checkbox" rel="b" value="2" class="Brand">b 
 
     </label> 
 
    </div> 
 
</div>

+0

Спасибо за весь ответ и время. Я сделал ошибку, сняв флажок в функции готовности документа. Решение найдено после проверки флажка с помощью функции setTimeout(). Функция setTimeout() проверила все необходимые флажки. Итак, я искал, снят ли флажок в какой-то момент, и это было правдой. –

0

Чтобы изменить флажок состояния с помощью Jquery вы должны использовать prop:

$(elem).prop("checked", true) 

Чтобы получить значение, используйте prop() также:

$(elem).prop("checked") 

Вот jQuery prop docs: http://api.jquery.com/prop/

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