Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
4.1k views
in Technique[技术] by (71.8m points)

jq 修改input(checkbox)值

比如
var flmArr=[1,3,4,6];

有好多个checkbox ,如果checkbox的value值是flmArr其中一个值 那么这个checkbox设置为选中状态,否则设置未选中。

<label>
    <input type="checkbox" name="checkGy" value="1" />分类1
</label>
<label>
    <input type="checkbox" name="checkGy" value="2" />分类2
</label>
<label>
    <input type="checkbox" name="checkGy" value="3" />分类3
</label>
<label>
    <input type="checkbox" name="checkGy" value="4" />分类
</label>


var flmArr=new Array();
var flm=data[0].flm;
flmArr=flm.split(',');

$("input[name='checkGy']").each(function(){
    for(var i=0;i<flmArr.length;i++)
    {
        if($(this).val() == flmArr[i]){
            $(this).attr('checked', 'checked');
        }else {
            $(this).attr('checked', false);
        }
    }
 })

image.png
这是flmArr 从数据库拿过来的值 想与所有的input的value值对比 如果有相同值的 选中 没有的设置未选中 上面我写的代码有问题 该怎么实现


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)

肯定不能拿flmArr[i] 跟 $(this).val() 进行比较啊~
代码:

 if(flmArr.includes(Number( $(this).val() )){
    $(this).attr('checked', 'checked');
}else {
    $(this).attr('checked', false);
}

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...