如何创建复选框列表

时间:2010-04-27 12:19:13

标签: javascript html

如何创建复选框列表并在javascript中检索所选复选框值

3 个答案:

答案 0 :(得分:6)

假设一个结构:

<form name="test">
  <input type="checkbox" name="colors" value="red'/>
  <input type="checkbox" name="colors" value="orange'/>
  <input type="checkbox" name="colors" value="yellow'/>
  <input type="checkbox" name="colors" value="blue'/>
</form>

然后使用类似的东西来检索值:

var values = [];
var cbs = document.forms['test'].elements['colors'];
for(var i=0,cbLen=cbs.length;i<cbLen;i++){
  if(cbs[i].checked){
    values.push(cbs[i].value);
  } 
}
alert('You selected: ' + values.join(', '));

答案 1 :(得分:1)

要在DOM中创建元素,请使用document.createElement。要检索所选的复选框值,请使用element.checked和/或element.value。要详细了解HTML DOM,start here

您可能需要考虑使用jQuery来简化所有DOM操作和遍历工作。

答案 2 :(得分:0)

更现代的答案

document.querySelector("[name=test]").addEventListener("click", 
  e => {
    let tgt = e.target;
    if (tgt.name==="colors") {
      let checked = [...e.currentTarget.querySelectorAll(`[name=${tgt.name}]:checked`)];
      document.getElementById("res").innerHTML = checked.map(inp => inp.value).join(", ")
    }   
})
<form name="test">
  <input type="checkbox" name="colors" value="red"/>
  <input type="checkbox" name="colors" value="orange"/>
  <input type="checkbox" name="colors" value="yellow"/>
  <input type="checkbox" name="colors" value="blue"/>
</form>
<span id="res"></span>