• 批量录入表格中回车事件处理


    界面布局:

     脚本函数:

    function transEnter(sender) {

                if (event.keyCode == 13) {
                    var senderId = sender.getAttribute('id');
                    var ptr = $("#" + senderId);//当前行
                    var ptb = $("#" + senderId);//当前单元格
                    while (ptr.get(0).tagName != "TR") {
                        ptr = ptr.parent();
                    }
                    while (ptb.get(0).tagName != "TBODY") {
                        ptb = ptb.parent();
                    }
                    //计算当前触发控件所在单元格索引
                    var tdindex = 0;
                    for (var i = 0; i < ptr.children('td').length; i++) {
                        var unknowobj = ptr.children('td').eq(i);
                        if(unknowobj.children(":text").length ==1)
                        {
                            var id = unknowobj.children(":text").attr('id');
                            if (id == sender.id) {
                                tdindex = i;
                                break;
                            }    
                        }
                        
                    }
                    console.log("tdindex",tdindex); //找到正确的tdindex            
                    console.log("ptr.children('td').length",ptr.children('td').length);

                    //获取当前单元格
                    var unknowobj = ptr.children('td').eq(tdindex + 1);
                
                    while(unknowobj.children(":text").length == 0)//判断当前单元格是否包含输入控件
                    {
                        tdindex = tdindex + 1;
                        unknowobj = ptr.children('td').eq(tdindex + 1);//找下一个单元格
                        console.log(unknowobj.children(":text").length);
                        if(ptr.children('td').length == tdindex)//如果当前行的最后一个单元格已经检索完成
                        {
                            //更换行对象
                            if(ptr.index() + 1 < ptb.children('TR').length -1)//当前行不是最后一行
                            {
                                ptr = ptb.children('TR').eq(ptr.index() + 1);//切换下一行
                                tdindex = 0;//td从0开始
                                unknowobj = ptr.children('td').eq(tdindex);    //更换单元格
                            }
                            else{//全部行处理完成
                                break;
                            }                        
                        }
                    }
                    if(unknowobj.children(":text").length ==1){
                        var id = unknowobj.children(":text").attr('id');
                        console.log("obj.id", id);
                        unknowobj.children(":text").focus();
                    }
                    return false;            
                }           
                return true;
            }

    //激发代码

    "onkeydown", "return transEnter(this);"

  • 相关阅读:
    java: 无效的目标发行版: 17 问题解决
    超纯水制备抛光树脂及填装要求
    Bentley OpenFlows FLOOD 集成的洪水模拟软件
    LeetCode每日一题——1704. 判断字符串的两半是否相似
    C++实现高并发内存池
    Windows未正确加载怎么办?
    国货之光!ATECLOUD—功能如此强大的测试测量上位机开发工具软件!
    kubernetes(K8S)学习笔记P5:K8s核心概念2
    QT 第五天 TCP通信与数据库
    Apache Spark 的基本概念和在大数据分析中的应用
  • 原文地址:https://blog.csdn.net/sharpnessdotnet/article/details/127439858