首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >在MVC4上向DOM表中添加行

在MVC4上向DOM表中添加行
EN

Stack Overflow用户
提问于 2020-06-09 14:46:23
回答 1查看 53关注 0票数 0

我在MVC 4中有一个"DOM“列表,它使用jQuery动态添加元素,但是在删除表不再允许我添加更多元素的时候,我尝试使用长度和比较,但是它不起作用。

我可能错过了一些显而易见的东西,但看不见它是什么。有什么想法吗?

示例

这是我的表号

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
    <div><a href="#" id="addNew"><img src="~/Images/splus.png" alt="Add Product" style="border:0"/></a></div>
        <table id="dataTable" border="0" cellpadding="0" cellspacing="0">
            <thead>
            <tr>
                <th></th>
                <th></th>
               <th>Product</th>
                <th>Quantity</th>
                <th></th>
            </tr>
                </thead>
            <tbody>
            @if (Model != null && Model.Count > 0)
            {
                int j = 0;
                int index = 1;
                foreach (var i in Model)
                {
                   <tr>
                        <td>@index</td>
                        <td>@Html.HiddenFor(a => a[j].SEQ_NO, new { id = "nrow", Value = index })</td>
                        <td>@Html.DropDownList("PRODUCTS", "Select Product")</td>
                        <td>@Html.TextBoxFor(a => a[j].QUANTITY)</td>                 
                        <td>   
                                <a href="#" id="remove" class="remove"><img src="~/Images/sminus.png" alt="Add Product" style="border:0"/></a>    
                        </td>                      
                   </tr>
                    index += 1;
                    j++;
                }
            }
         </tbody>
        </table>

以下是我单击Add时的jQuery代码

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
            $("#addNew").click(function (e) {
            e.preventDefault();
            var last = $('#dataTable>tbody>tr:last');
            if (last.length > 0) {
                var name = last.children().find('input,select')[0].name;
                var index = Number(name.replace(/[^0-9]/gi, '')) + 1;
                var tr = ('<tr>' + last.html().replace(/[0-9]+__/gi, index + '__') + '</tr>').replace(/\[[0-9]+\]+[.]/gi, '[' + index + '].');
                numberRows($('#dataTable tbody').append(tr));
             }

            });

更新:

添加“删除代码”

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
            $(document).on('click', '#remove', function (e) {
            e.preventDefault();
            $(this).parent().parent().remove();
            numberRows($('#dataTable tbody'));

        });
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-06-17 21:49:21

可能遗漏了一些显而易见的东西,但看不见它是什么。有什么想法吗?

var name = last.children().find('input,select')[0].name;

这一行代码需要最后一个子代码,这意味着在删除最后一个下面之后,name将是未定义的。实际上,Add New函数甚至不会传递if (last.length > 0),因为上次删除last.length时,last.length变为0。

您可以在devtools中进行调试,并将看到:

在上次被移除之前:

上次被移除后:

因此,要解决这个问题,最简单的解决方案是不删除最后一个,而是隐藏它。请检查以下代码:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
    $(document).on('click', '#remove', function (e) {
        e.preventDefault();
        if ($('#dataTable>tbody>tr').length > 1) {
            $(this).parent().parent().remove();
            //numberRows($('#dataTable tbody'));
        }
        else {
            $(this).parent().parent().hide();
        }
    });

Ps。不确定numberRows()函数中发生了什么,所以我对其进行了注释。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62293096

复制
相关文章
MySQL如何加行锁或者表锁?
MySQL可以使用锁来控制对表和行的访问,下面简单介绍一下如何对表和行进行加锁的方法
SmileNicky
2023/06/04
1.7K0
C#的“智能枚举”:在枚举中增加行为?
在这个示例中,我们定义了一个名为 Weekday 的枚举,其中包括每个星期的日子。然后在 Main 方法中,我们将 today 变量设置为 Tuesday,并使用 ToString() 方法将其转换为字符串。
郑子铭
2023/08/30
4100
C#的“智能枚举”:在枚举中增加行为?
WebSocket在ASP.NET MVC4中的简单实现
WebSocket 规范的目标是在浏览器中实现和服务器端双向通信。双向通信可以拓展浏览器上的应用类型,例如实时的数据推送、游戏、聊天等。有了WebSocket,我们就可以通过持久的浏览器和服务器的连接实现实时的数据通信,再也不用傻傻地使用连绵不绝的请求和常轮询的机制了,费时费力,当然WebSocket也不是完美的,当然,WebSocket还需要浏览器的支持,目前IE的版本必须在10以上才支持WebSocket,Chrome Safari的最新版本当然也都支持。本节简单介绍一个在服务器端和浏览器端实现WebS
小白哥哥
2018/03/07
2.6K0
WebSocket在ASP.NET MVC4中的简单实现
Mybatis 向指定表中批量插入数据
Mybatis 向指定表中批量插入数据
Java架构师必看
2021/09/30
1.6K0
【译】如何避免在JavaScript中阻塞DOM
原文链接:https://www.sitepoint.com/avoiding-dom-blocking/
腾讯IVWEB团队
2020/06/28
2.8K0
vue动态添加行
html <div id="app"> <div @click="addData">点击添加行</div> <div class="box1"> <table> <tr> <th width="10%">序号</th> <th width="25%">姓名</th> <th width="25%">性别
用户1349575
2022/02/17
3.9K0
vue在浏览器中对DOM渲染探究
“世间万物都由分子构成。用气将万物的分子打散,分解眼前事物,再将分子重组,在短暂的瞬间,可以凝成时空停顿,甚至逆转时空。”
Yerik
2022/04/06
1.2K0
PHP MySQL向数据库表中插入新记录
INSERT INTO table_name (column1,column2,...)
哆哆Excel
2022/10/25
20.5K0
PHP MySQL向数据库表中插入新记录
在PowerBI中创建时间表(非日期表)
在powerquery中创建日期表是使用powerbi过程中一个必不可少的内容(当然,你也可以使用DAX来创建):
陈学谦
2020/07/01
4.4K0
在PowerBI中创建时间表(非日期表)
【示例】在NO INMEMORY表上指定INMEMORY列属性
从OracleDatabase 12c第2版(12.2)开始,可以在尚未指定为 INMEMORY 的对象的列级别指定 INMEMORY 子句。
Yunjie Ge
2022/04/24
9970
【示例】在NO INMEMORY表上指定INMEMORY列属性
在博客园平台为代码添加行号显示
在前面两篇文章中,我们分别为大家介绍了如何在博客园平台的文章添加目录,以及为文章代码添加高亮,在这篇文章中我们介绍下为文章中的代码添加行号显示,具体效果如下所示(效果图的源文章请参考这篇博客):
DechinPhy
2021/05/21
7070
记一次添表引发的数据修复
项目中积分部分之前每次查询用户总积分都是动态汇总,并未存到数据库中,数据量一大就会发现查询速度超慢,为缓解该问题,现在需要将汇总的数据持久化,新增了一个SYS_POINTS_SUM_DETAIL表,此时就涉及到数据修复问题。本文就是对修复脚本的记录,里面覆盖了众多基础语法,亦可当做学习实例。
WindCoder
2020/01/21
4720
如何向Hive表加载数据
使用追加的方式将test_user表中id大于3并且小于5的数据插入到my_table表中,执行结果如下:
Fayson
2018/03/29
3.4K0
原型链上的DOM Attributes
Chrome开发小组最近发表声明他们正在將DOM properties移动到原型链中。这个更新将会在Chrome 43(2015年4月发布beta版本)中实现。这可以让Chrome与Web IDL标准以及其他浏览器(IE和Firfox)保持一致。注:旧的基于Webkit的浏览器与标准不兼容但是safari已经与标准兼容了。
mmzhou
2018/08/01
7450
在Excel公式中嵌入查找表
通常,我们会在工作表中放置查找表,然后使用公式在该表中查找相对应的值。然而,这也存在风险,就是用户可能会在删除行时无意识地将查找表中的内容也删除,从而导致查找错误。
fanjy
2023/09/23
3000
在Excel公式中嵌入查找表
Java向Oracle数据库表中插入CLOB、BLOB字段
在需要存储较长字符串到数据库中时往往需要使用一些特殊类型的字段,在Oracle中即blob和clob字段,一般而言:Clob字段存储字符信息,比如较长的文字、评论,Blob字段存储字节信息,比如图像的base64编码。
ZONGLYN
2019/08/08
6.7K0
MVC3和MVC4中CRUD操作
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/116252.html原文链接:https://javaforall.cn
全栈程序员站长
2022/01/24
5080
使用IO流,在文本文件前增加行号
读取文本文件,可以使用转换流 InputStreamReader 或者使用 FileReader;
头发还在
2023/10/16
1750
使用IO流,在文本文件前增加行号
PHP中DOM操作
//创建一个tag名为people的Element,并添加到DOMDocument中
用户7886150
2021/02/26
8080
C# 中的“智能枚举”:如何在枚举中增加行为
在这个示例中,我们定义了一个名为 Weekday 的枚举,其中包括每个星期的日子。然后在 Main 方法中,我们将 today 变量设置为 Tuesday,并使用 ToString() 方法将其转换为字符串。
郑子铭
2023/08/30
3340
C# 中的“智能枚举”:如何在枚举中增加行为

相似问题

向表中添加行

42

向表中添加行

10

jQuery在window.open上向表中添加行

10

Primeng表:在ngOnInit中向表中添加行

227

向表中动态添加行

11
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文