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