如何防止JavaScript以前的数据

如何防止JavaScript以前的数据,javascript,Javascript,大家好,我编写了一个JavaScript代码,通过选择一个选项来使用getJSON方法获取数据。 但我的问题是,当我选择新选项时,旧数据仍然存在于我的复选框中,并且新值添加到旧数据中!!如何通过选择新选项取消选中旧复选框 <select onchange="OnSelectionChange(this)"> <option value="1">one</option> <option value="2">two</option

大家好,我编写了一个JavaScript代码,通过选择一个选项来使用getJSON方法获取数据。 但我的问题是,当我选择新选项时,旧数据仍然存在于我的复选框中,并且新值添加到旧数据中!!如何通过选择新选项取消选中旧复选框

<select onchange="OnSelectionChange(this)">
    <option value="1">one</option>
    <option value="2">two</option>
    <option value="3">three</option>
    <option value="4">four</option>
</select>



<ul class="icheck-list">
{foreach $rps as $rp}
    <li>
        <input type="checkbox" name="updatePERM[]" value="{$rp.id}">
        <label for="minimal-checkbox-1-15">{$rp.rname}</label>
    </li>
{/foreach}
</ul>


<script type="text/javascript">
function OnSelectionChange (select) {
var selectedOption = select.options[select.selectedIndex];

var url = "./include/getPerms.php?key="+selectedOption.value+"";
$.getJSON(url, function(data) {
    $.each(data.rules, function(i, rule) {      
    $('input:checkbox[value="' + rule.id + '"]').attr('checked', true).iCheck({
        checkboxClass: 'icheckbox_flat-pink',
        });
    });
  });
}
</script>

一
二
三
四
    {foreach$rps作为$rp}
  • {$rp.rname}
  • {/foreach}
功能选择更改(选择){ var selectedOption=select.options[select.selectedIndex]; var url=“./include/getPerms.php?key=“+selectedOption.value+”; $.getJSON(url、函数(数据){ $.each(data.rules,function(i,rule){ $('input:checkbox[value=“”+rule.id+'''“]).attr('checked',true)。iCheck({ checkboxClass:“icheckbox_扁粉色”, }); }); }); }
在设置新值之前,您需要重置复选框:

$('input:checkbox').attr('checked', false)

我有30个复选框,当复选框values=someDATA时,它们会继续被选中。很好,但现在我可以只选择每个选项一次,第二次选中复选框不起作用。我不知道你在说什么。您可能只想调用一次
iCheck
,而不是每次回调。