javascript - 在其他事件发生后,复选框不会在页面上保持加载状态

标签 javascript jquery html json dom

目标:我有一个复选框列表,这些复选框通过 JSON 和 javascript 加载到 HTML DOM 中。复选框按钮将很好地加载到页面上,但如果我使用我的其他函数 uncheckAllCities(),所有按钮将从显示中消失,而不是取消选中它们。我不确定为什么。它发生在其他几个操作中,例如当我要求它进行计算时,检查按钮丢失了。也许这与我如何从 JSON 添加复选框开始有关。 任何想法为什么按钮从 View 中消失? 以下函数生成复选框...

function buildCheckBoxes() {
    JSONCities = [ //Build checkbox controls to choose which cities get APIs      
        {
            "CityName": "Bellaire",
            "LatLong": "47.1200,-88.4600",
            "index": "a",
            "checked": "checked"
        }, ...(more JSON code)...
    },
];
//Form a list of checkboxes from JSON
for (j = 0; j < JSONCities.length; j++) //Need to learn if value may be set in checkbox to return, not just true and false checked
{
    loadChk = '<input class="checkboxes_class" type="checkbox" name="checkbox-v-2' + JSONCities[j].index + '" value="' + JSONCities[j].LatLong + '" id="checkbox-v-2' + JSONCities[j].index + '"' + JSONCities[j].checked + '>' + " " + '<label for="checkbox-v-2' + JSONCities[j].index + '">' + JSONCities[j].CityName + '</label>';
    locCheckBtn += loadChk;
}
$('#loc1').html(locCheckBtn); // update HTML DOM    
}


$(document).ready(function() {
    //prepare checkbox buttons on page load.
    buildCheckBoxes();
});

function uncheckAllCities() { //stackoverflow.com/questions/14110169/check-uncheck-the-array-of-checkboxes
    document.getElementsByClassName("checkboxes_class").checked = false;
}

最佳答案

研究你的代码我发现了两个问题:

  1. 我已经在评论中提到了这一点:getElementsByClassName返回一个集合,而不是一个元素,所以你应该遍历它并设置 checked = false到每个单独的元素。

  2. 默认情况下,所有 html 按钮都是提交按钮。因此,只要您单击任何按钮,就会提交表单,从而刷新页面。如果添加 type="button"为每个按钮添加属性,当您单击它们时不会提交表单(例如 <button type="button">click here!</button> )。 (小旁注:我不太确定为什么在提交表单后复选框没有加载,但是将 type 设置为 button 至少应该可以解决您的问题,所以我没有进一步调查)

关于javascript - 在其他事件发生后,复选框不会在页面上保持加载状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30200315/

相关文章:

Javascript parseFloat 10 而不是 e

javascript - HighChart 标记突出显示/工具提示问题,突出显示标记不移动

javascript - 无法在回调中监听/处理 EventEmitter

javascript - 让 jQuery 从另一个页面加载信息

html - 在具有灵活但最大高度的 div 中显示 tinymce 内容

javascript - jQuery - 将处理程序传递给回调

jquery - 如何正确使用jquery的tabs()函数?

javascript - bootstrap 3 datepicker(eonasdan 版本)提供了一个带有 getDate() 的日期时间对象。不是字符串

javascript - bootstrap 2.1 模式自动对焦不起作用

javascript - 使用 JavaScript 在 IE 中未正确设置禁用属性