![](/img/trans.png)
[英]Javascript: How to get values from checkboxes that are created “dynamically”
[英]How to get input from dynamically created checkboxes and radio buttons in javascript?
我需要在显示的数据组中动态创建复选框和单选按钮,然后我需要接受用户的选择并将其放入变量中。
我举了一个带有几个复选框和单选按钮的示例,但是我不知道如何实际获取输入:
这是jsfidle
var t = document.getElementById("container"); var data1 = ['TV', 'Newspaper', 'Internet']; var data2 = ['New York', 'Washington', 'Los Angeles']; t.innerHTML += checkbutton(data1); t.innerHTML += radiobutton(data2); function checkbutton(d) { var output = ""; for (var i = 0; i < d.length; i++) { output += '<input type="checkbox" value=' + d[i] + ' name="box2">' + ' ' + d[i] + ' ' + '<br><br>'; } return output; } function radiobutton(d) { var output = ""; for (var i = 0; i < d.length; i++) { output += '<input type="radio" value=' + d[i] + ' name="box2">' + ' ' + d[i] + ' ' + '<br><br>'; } return output; }
<div id="container"></div>
像这样?
注意事件侦听器和名称的更改
还要确保引用名称和值
function checkbutton(d) { var output = ""; for (var i = 0; i < d.length; i++) { output += '<label><input type="checkbox" value="' + d[i] + '" name="box'+i+'">' + ' ' + d[i] + ' ' + '</label><br><br>'; } return output; } function radiobutton(d) { var output = ""; for (var i = 0; i < d.length; i++) { output += '<label><input type="radio" value="' + d[i] + '" name="rad">' + ' ' + d[i] + ' ' + '</label><br><br>'; } return output; } window.addEventListener("load", function() { var t = document.getElementById("container"); var b = document.getElementById("but"); var data1 = ['TV', 'Newspaper', 'Internet']; var data2 = ['New York', 'Washington', 'Los Angeles']; t.innerHTML += checkbutton(data1); t.innerHTML += radiobutton(data2); t.addEventListener("change",function(e) { var tgt = e.target; if (["radio","checkbox"].indexOf(tgt.type) !=-1) { // only look at checkboxes and radios. Change if needed console.log(tgt.value); } }); b.addEventListener("click",function() { var vars = {} t.querySelectorAll("input").forEach(inp => { if (inp.checked) vars[inp.name]=inp.value }); console.log(vars); }) })
<div id="container"></div> <button type="button" id="but">Click</button>
使用javascript,您可以查询html元素的特定属性-例如单选按钮和复选框。 为了做到这一点,每个元素都应该有一个唯一的id-这样我们就可以使用document.getElementById(id)
来获取一个元素。 另一个选择是按元素类型获取元素,例如document.getElementsByTagName("input")
。 这将返回所有输入元素的html集合-一个数组。 使用简单的for循环,您可以遍历此数组,并使用.checked属性,可以确定是否选择了这些输入框之一。
var t = document.getElementById("container"); var data1 = ['TV', 'Newspaper', 'Internet']; var data2 = ['New York', 'Washington', 'Los Angeles']; t.innerHTML += checkbutton(data1); t.innerHTML += radiobutton(data2); function checkbutton(d) { var output = ""; for (var i = 0; i < d.length; i++) { output += '<input type="checkbox" value="' + d[i] + '" name="box2">' + ' ' + d[i] + ' ' + '<br><br>'; } return output; } function radiobutton(d) { var output = ""; for (var i = 0; i < d.length; i++) { output += '<input type="radio" value="' + d[i] + '" name="box2">' + d[i] + '<br><br>'; } return output; } function check() { var elements = document.getElementsByTagName("input"); for (var a = 0; a < elements.length; a++) { if (elements[a].checked) { console.log(elements[a].value + " is checked"); } } }
<div id="container"></div> <button id="check" onclick="check()"> check </button>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.