Javascript 在复选框的复选框中删除表行在7中不起作用
我有一个由循环中的一些数据组成的表,在这里单击编辑按钮,添加按钮和文本框将被启用,再次选中多个复选框,添加按钮将被禁用,再次取消选中多个复选框(保留一个复选框)“添加”按钮将被启用。直到这里一切正常。现在,如果我选中任何行并单击“删除”,则所选行将被删除,如果我单击“删除”按钮而不选中任何复选框,则会显示一条验证消息,“至少应选择一行”。下面是我尝试的代码 app.component.ts app.component.htmlJavascript 在复选框的复选框中删除表行在7中不起作用,javascript,html,angular,Javascript,Html,Angular,我有一个由循环中的一些数据组成的表,在这里单击编辑按钮,添加按钮和文本框将被启用,再次选中多个复选框,添加按钮将被禁用,再次取消选中多个复选框(保留一个复选框)“添加”按钮将被启用。直到这里一切正常。现在,如果我选中任何行并单击“删除”,则所选行将被删除,如果我单击“删除”按钮而不选中任何复选框,则会显示一条验证消息,“至少应选择一行”。下面是我尝试的代码 app.component.ts app.component.html 基本表 .table类向表中添加基本样式(轻填充和仅水平分隔):
基本表
.table类向表中添加基本样式(轻填充和仅水平分隔):
编辑
删除
添加
现在选中的行将被删除。以下是工作示例:
您应该向对象添加默认值为“false”的附加属性“selected”,并更新delete()方法,我是如何做到的:
您的对象:
groups = [
{
"name": "pencils",
"items": "red pencil",
"selected": false
},
{
"name": "rubbers",
"items": "big rubber",
"selected": false
},
{
"name": "rubbers1",
"items": "big rubber1",
"selected": false
},
];
delete(){
let checkedRows: Array<any> = [];
let uncheckedRows: Array<any> = this.groups;
this.groups = this.groups.filter((row: any) => {
if (row.selected !== false) {
checkedRows.push(row);
} else {
return row;
}
});
if (checkedRows.length === 0) {
alert('At least one should be selected!');
}
if (checkedRows.length === uncheckedRows.length) {
alert('At least one row should be there unchecked!');
this.groups = checkedRows;
}
}
delete()方法:
groups = [
{
"name": "pencils",
"items": "red pencil",
"selected": false
},
{
"name": "rubbers",
"items": "big rubber",
"selected": false
},
{
"name": "rubbers1",
"items": "big rubber1",
"selected": false
},
];
delete(){
let checkedRows: Array<any> = [];
let uncheckedRows: Array<any> = this.groups;
this.groups = this.groups.filter((row: any) => {
if (row.selected !== false) {
checkedRows.push(row);
} else {
return row;
}
});
if (checkedRows.length === 0) {
alert('At least one should be selected!');
}
if (checkedRows.length === uncheckedRows.length) {
alert('At least one row should be there unchecked!');
this.groups = checkedRows;
}
}
delete(){
让checkedRows:Array=[];
让我们取消选中:Array=this.groups;
this.groups=this.groups.filter((行:任意)=>{
如果(row.selected!==false){
选中行。推(行);
}否则{
返回行;
}
});
如果(checkedRows.length==0){
警报('应至少选择一个!');
}
if(checkedRows.length==uncheckedRows.length){
警报('应至少有一行未选中!');
this.groups=checkedRows;
}
}
这对我有用)祝你好运怎么了?你以前问过这个问题并接受了回答。Answer还有一个实时演示,可以实现您想要的功能:从那时起,您显然忽略了此处显示的代码。谢谢,如果我单击“删除”按钮而不选中任何复选框,则会显示一条验证消息“至少应选择一个”不正确(抱歉),您是对的。我刚刚更新了这个示例-。现在它的工作方式你想要)请尝试它)谢谢你的回答,我需要一个更多的帮助,如果我选择所有的复选框,并单击删除按钮,应该有一个验证,用户不能删除所有的行点击删除按钮,至少有一行应该在那里未经检查..不是最好的解决方案,但它的工作原理,正如你所希望的那样,它会帮助你)祝你好运