javascript - 如何防止JavaScript以前的数据

标签 javascript

大家好,我编写了一段 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>

最佳答案

您需要在设置新值之前重置复选框:

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

关于javascript - 如何防止JavaScript以前的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35190536/

相关文章:

javascript - 使用嵌套的 Promise 编写干净的代码

javascript - 使用 HTML 5 Canvas 时如何在 png 图像上划定透明区域?

javascript - 将 javascript 变量传递给 php,然后返回 html

javascript - 使用 JavaScript 进行碰撞检测。 (检查2个 block 级元素是否接触)

javascript - 删除类并在单个元素上添加类

javascript - 在我的应用程序启动时创建所有路由是个好主意吗?

javascript - 将二维数组切片为更小的 'blocks' 或 'chunks' 数组

javascript - 删除 highcharts.com 积分链接

javascript - 使 "*"和空间大小相同

javascript - Gulp 注入(inject)不能以一种方式工作,但以另一种方式工作——没有区别吗?