Javascript 我正在使用document.querySelectorAll(';input[type=checkbox]:checked';)从动态创建的复选框中获取选中值
我正在动态创建复选框。。。 我希望复选框中的选中值应存储在一个数组中。。。 我面临以下问题 *Javascript 我正在使用document.querySelectorAll(';input[type=checkbox]:checked';)从动态创建的复选框中获取选中值,javascript,arrays,Javascript,Arrays,我正在动态创建复选框。。。 我希望复选框中的选中值应存储在一个数组中。。。 我面临以下问题 * 如果我有console.log,那么最后一个变量console.log(数组);考虑到 如果选中该值,则在console.log中选择“[”on“] 我没有得到实际值。下面给出了我的代码。我不知道我犯了什么错误。谁能帮我一下吗。 提前谢谢 <input type="Submit" Value="add" onclick="searchinpu
- 如果我有console.log,那么最后一个变量console.log(数组);考虑到 如果选中该值,则在console.log中选择“[”on“]
<input type="Submit" Value="add" onclick="searchinput()">
--------------
function searchinput()
{
var li=document.createElement("li");
//creating checkbox
var label=document.createElement('label');
label.className="lab_style";
li.appendChild(label);
var check=document.createElement('input');
check.type="checkbox";
check.name="check_bo";
li.appendChild(check);
check.addEventListener('click', function() {
var array=[];
var checkedvalue=document.querySelectorAll('input[type=checkbox]:checked');
alert(checkedvalue.value);
for (var i = 0; i < checkedvalue.length; i++) {
array.push(checkedvalue[i].value);
console.log(array);
}
}, false);
}
--------------
函数searchinput()
{
var li=document.createElement(“li”);
//创建复选框
var label=document.createElement('label');
label.className=“实验室风格”;
li.儿童(标签);
var check=document.createElement('input');
check.type=“checkbox”;
check.name=“check\u bo”;
李.儿童(支票);
check.addEventListener('click',function(){
var数组=[];
var checkedvalue=document.querySelectorAll('input[type=checkbox]:checked');
警报(checkedvalue.value);
对于(变量i=0;i
如果您有一个带有一堆复选框的表单,并且表单提交后,您希望将所有选中复选框的值存储在一个数组中,那么您可以这样做
const checkbox=document.querySelectorAll(“输入[type=checkbox]”);
const form=document.querySelector(“表单”);
常数arr=[];
表格.附录列表(“提交”、(e)=>{
e、 预防默认值()
复选框。forEach(chbox=>{
如果(chbox.checked){
arr.push(chbox.value)
}
})
控制台日志(arr)
})
苹果公司:
芒果:
香蕉:
葡萄:
提交
您面临的问题之一是
document.querySelectorAll('input[type=checkbox]:checked');
返回节点列表
,并且值
不是节点列表
对象上的属性。这就是您在警报中看到“未定义”的原因。
尽可能少地更改代码,我认为这应该是可行的:
function searchinput()
{
var li=document.createElement("li");
//creating checkbox
var label=document.createElement('label');
label.className="lab_style";
li.appendChild(label);
var check=document.createElement('input');
check.type="checkbox";
check.name="check_bo";
li.appendChild(check);
check.addEventListener('click', function() {
var array=[];
var checkedvalue = document.querySelectorAll('input[type=checkbox]:checked');
for (var i = 0; i < checkedvalue.length; i++) {
if(checkedvalue[i].checked) {
array.push(checkedvalue[i].value);
}
}
}, false);
}
函数searchinput()
{
var li=document.createElement(“li”);
//创建复选框
var label=document.createElement('label');
label.className=“实验室风格”;
li.儿童(标签);
var check=document.createElement('input');
check.type=“checkbox”;
check.name=“check\u bo”;
李.儿童(支票);
check.addEventListener('click',function(){
var数组=[];
var checkedvalue=document.querySelectorAll('input[type=checkbox]:checked');
对于(变量i=0;i
代码仍有问题。最初,这是在提交表单时运行的,没有时间实际选中复选框。@Teemu因此,表单中有一堆复选框,一旦提交表单,我想将所有复选框的值存储在一个数组中,这就是我们试图实现的吗?一旦提交表单,您将被重定向到新页面(或当前页面被重新加载),您在当前页面上所做的一切都将消失。@您可以阻止表单的默认行为,否则您需要在后端获取数据(例如:使用POST路由)@Teemu我已经更新了我的答案请看一看。你需要熟悉。你也没有给你创建的复选框一个值^——即使有分配的值,那也没有多大价值,不管复选框是否被选中,值都是相同的。你到底想做什么?看起来你想继续,只添加一个复选框,并创建一个复选框值数组。除了提交问题,这正是您的代码所做的。“值”是什么你期望的不是上默认的?@Teemu实际上我是初学者。我只想做我的检查表。我不想重定向到另一页。实际上我需要输入框中给定的复选框中的值。这些部分正在工作,所以我在这里没有提到。ThanksA NodeList不是数组…它类似于数组ea有效点:)
function searchinput()
{
var li=document.createElement("li");
//creating checkbox
var label=document.createElement('label');
label.className="lab_style";
li.appendChild(label);
var check=document.createElement('input');
check.type="checkbox";
check.name="check_bo";
li.appendChild(check);
check.addEventListener('click', function() {
var array=[];
var checkedvalue = document.querySelectorAll('input[type=checkbox]:checked');
for (var i = 0; i < checkedvalue.length; i++) {
if(checkedvalue[i].checked) {
array.push(checkedvalue[i].value);
}
}
}, false);
}