简体   繁体   English

如何从数组JavaScript显示复选框值

[英]How to display checkbox values from an array javascript

I have an array of values from a dropdown button (model) that generates dynamic checkboxes (destination). 我有一个来自下拉按钮(模型)的值数组,该按钮生成动态复选框(目标)。 However, I wanted to display different criteria depending on the selected model and checked destination. 但是,我想根据所选模型和检查的目的地显示不同的条件。 Im sorry for this question. 我很抱歉这个问题。 Im new to javascript and still learning. 我是javascript新手,还在学习中。 Thanks 谢谢

Javascript: 使用Javascript:

  function populate(model, destination) { var mod = document.getElementById(model); var des = document.getElementById(destination); des.innerHTML = ""; if (mod.value == "model-a") { var optionArray = ["Model-A.1", "Model-A.2", "Model-A.3"]; } else if (mod.value == "model-b") { var optionArray = ["Model-B.1", "Model-B.2", "Model-B.3"]; } else if (mod.value == "model-c") { var optionArray = ["Model-C.1", "Model-C.2", "Model-C.3"]; } for (var option in optionArray) { if (optionArray.hasOwnProperty(option)) { var pair = optionArray[option]; var checkbox = document.createElement("input"); checkbox.type = "checkbox"; checkbox.name = pair; checkbox.value = pair; des.appendChild(checkbox); var label = document.createElement('label') label.htmlFor = pair; label.appendChild(document.createTextNode(pair)); des.appendChild(label); des.appendChild(document.createElement("br")); } } } 

You have to wrap the id by quotes: 您必须将id用引号引起来:

    var mod = document.getElementById('model');
    var des = document.getElementById('destination');

 function populate(model, destination) { var mod = document.getElementById('model'); var des = document.getElementById('destination'); des.innerHTML = ""; if (mod.value == "model-a") { var optionArray = ["Model-A.1", "Model-A.2", "Model-A.3"]; } else if (mod.value == "model-b") { var optionArray = ["Model-B.1", "Model-B.2", "Model-B.3"]; } else if (mod.value == "model-c") { var optionArray = ["Model-C.1", "Model-C.2", "Model-C.3"]; } for (var option in optionArray) { if (optionArray.hasOwnProperty(option)) { var pair = optionArray[option]; var checkbox = document.createElement("input"); checkbox.type = "checkbox"; checkbox.name = pair; checkbox.value = pair; des.appendChild(checkbox); var label = document.createElement('label') label.htmlFor = pair; label.appendChild(document.createTextNode(pair)); des.appendChild(label); des.appendChild(document.createElement("br")); } } } 
 <select id="model" onchange="populate();"> <option></option> <option>model-a</option> <option>model-c</option> <option>model-b</option> </select> <hr> <div id="destination"></div> 

Please try below code, i have made few changes in your code. 请尝试以下代码,我对您的代码进行了一些更改。

    function populate(model, destination) {
            var mod = document.getElementById(model);
            var des = document.getElementById(destination);
            des.innerHTML = "";
            if (mod.value == "model-a") {
                var optionArray = ["Model-A.1", "Model-A.2", "Model-A.3"];
            } else if (mod.value == "model-b") {
                var optionArray = ["Model-B.1", "Model-B.2", "Model-B.3"];
            } else if (mod.value == "model-c") {
                var optionArray = ["Model-C.1", "Model-C.2", "Model-C.3"];
            }

            for (var option in optionArray) {
                if (optionArray.hasOwnProperty(option)) {
                    var pair = optionArray[option];
                    var checkbox = document.createElement("input");
                    checkbox.type = "checkbox";
                    checkbox.name = pair;
                    checkbox.value = pair;
                    checkbox.checked = true;
                    des.appendChild(checkbox);

                    var label = document.createElement('label')
                    label.htmlFor = pair;
                    label.appendChild(document.createTextNode(pair));

                    des.appendChild(label);
                    des.appendChild(document.createElement("br"));
                }
            }
        }

<select id="model" onchange="populate('model','destination');">
  <option></option>
  <option>model-a</option>
  <option>model-c</option>
  <option>model-b</option>
</select>

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM