javascript - 如何删除表单中的复选框

标签 javascript html dom checkbox

function newCheckbox(){
    var aLabel = document.form1.getElementsByTagName('label');
    var last = aLabel[aLabel.length-1];
    var label = document.createElement('label');
    label.appendChild(Box(aLabel.length));
    label.appendChild(document.createTextNode('      '+document.getElementById('text').value));
    last.parentNode.insertBefore(label, last);
    document.getElementById('text').value = '';
}

function Box(num){
    var elm = null;
    try {
        elm=document.createElement('<input type="checkbox" id="chk'+num+'">');
    }
    catch(e) {
        elm = document.createElement('input');
        elm.setAttribute('type', 'checkbox');
        elm.id='chk'+num;
    }
    return elm;
}

function delBoxes(){ 
    var texts = document.form1.getElementsByTagName('label');
    for(var i = 0; i<texts.length-1; i++){
        var chbox=Box[i];
        txt = texts[i];
        if(chbox.checked){
            chbox.parentNode.removeChild(chbox);
            txt.parentNode.removeChild(txt);
        }
    }
}
form{
	color:blue;
	font-weight:bold;
	margin:100 0 0 50;
	font-weight:bold;
	margin-left:120;
	padding:100;
}

label{
	display:block;
}

input{
	color:blue;
	background-color:pink;
}
<!DOCTYPE html>
<html>
    <head>
        <title></title>
    </head>
    <body>
        <form action="#" name="form1">
            <div>
                <label>Checkbox text:<input type="text" id="text"></label>
                <input type="button" onclick="newCheckbox();"value="add">
                <input type="button" value="Delete" onclick = "delBoxes();"/>
            </div>
        </form>
    </body>
</html>

我想要一个动态页面,允许用户向页面添加复选框。复选框内容是文本框中的输入。

当用户按下“添加”按钮时,将创建并显示复选框。用户必须能够通过标记来删除复选框。该代码可以向表单添加新的复选框,但删除功能不起作用。

似乎没有创建 chbox,并且 if 语句在函数 delBoxes 中没有执行任何操作。

有什么建议吗?

最佳答案

将整个脚本替换为:

function newCheckbox() {
    var aLabel = document.form1.getElementsByTagName('label');
    var last = aLabel[aLabel.length-1];
    var label = document.createElement('label');
    label.appendChild(Box(aLabel.length));
    label.appendChild(document.createTextNode('      '+document.getElementById('text').value));
    last.parentNode.insertBefore(label, last);
    document.getElementById('text').value = '';
}

function Box(num) {
    var elm = null;
    try {
        elm=document.createElement('<input type="checkbox" class="chk">');
    }
    catch(e) {
        elm = document.createElement('input');
        elm.setAttribute('type', 'checkbox');
        elm.className='chk';
    }
    return elm;
}

function delBoxes(){ 
   var texts = document.form1.getElementsByTagName('label');
   var chbox = document.form1.getElementsByClassName('chk');
   for(var i = 0; i<texts.length-1; i++){
       if(chbox[i].checked){
           chbox[i].parentNode.removeChild(chbox[i]);
           texts[i].parentNode.removeChild(texts[i]);
       }
   }
}

关于javascript - 如何删除表单中的复选框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29731688/

相关文章:

jquery - 如何在 Bootstrap 轮播中裁剪视频

javascript - Uncaught ReferenceError : showCurrentPage is not defined at HTMLButtonElement. onclick

javascript - DOM 对象是什么类型的对象?

javascript - 如何使用javascript打开一个新的URL而不使用缓存?

javascript - CSS 不适用于设置 Canvas 大小?

javascript - Google maps API v3 - 标记的标签和颜色

html - 如何修复移动的导航栏底部移动

javascript - 更改 DOM 元素的代码行

javascript - 为什么使用 React Hooks、MomentJS 对象和间隔/超时更新状态不会触发重新渲染?

javascript - 缩略图云功能失败,错误为 "Error: EBUSY: resource busy or locked, rmdir '/tmp/thumbs( native )”