2015-09-10 136 views
2

我想检查复选框使用jquery但无济于事。以下是代码。复选框没有通过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); 
    }); 
}); 

复选框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> 

我同时使用ATTR和道具,但无济于事尝试。我在控制台中也没有任何错误。欢迎任何帮助/建议。提前致谢。

+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文档:http://api.jquery.com/prop/