单击单元格外部后如何退出文本框

2023-11-26

我意外地在网上找到了这段代码,它解决了我的大部分问题,但是我想在这段代码中添加一件事,但我不知道我的问题是什么,如何在用户后退出文本框双击它还是在用户完成编辑之后?

    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">

    <head>
    <title></title>
    <script type="text/javascript">
    /*<![CDATA[*/
    function INPUT(id){
    var obj=document.getElementById(id),tds=obj.getElementsByTagName('TD'),z0=0,ip,html;
    for (;z0<tds.length;z0++){
    tds[z0].onmouseup=function(){ AddInput(this); }
    }
    }

    function AddInput(td){
    var ip=zxcAddField('INPUT','text','');
    ip.value=td.innerHTML;
    td.innerHTML='';
    td.appendChild(ip);
    td.onmouseup=null;
    }

    function zxcAddField(nn,type,nme){
    var obj;
    try {
    obj=document.createElement('<'+nn+' name="'+(nme||'')+'" '+(type?'type="'+type+'" ':'')+' >');
    }
    catch(error){
    obj=document.createElement(nn);
    if (type){
    obj.type=type;
    }
    obj.name=nme||'';
    }
    return obj;
    }


    /*]]>*/
    </script>
    <script type="text/javascript">
    /*<![CDATA[*/

    function Init(){
    INPUT('tst');
    }

    if (window.addEventListener){
    window.addEventListener('load',Init, false);
    }
    else if (window.attachEvent){
    window.attachEvent('onload',Init);
    }

    /*]]>*/
    </script>
    </head>

    <body>
    <table id="tst" border="1">
    <tr width="200">
    <td>some html</td>
    </tr>
    </table>
    </body>

    </html>

一、修改AddInput为了设置一个监听器blur事件,当相关元素以外的其他元素收到点击时,该事件将触发:

function AddInput(td){
    var ip=zxcAddField('INPUT','text','');
    ip.value=td.innerHTML;
    ip.onblur = function () { removeInput(ip); };
    td.innerHTML='';
    td.appendChild(ip);
    td.onmouseup=null;
}

然后,您可以添加新的removeInput函数,它将取代<td>的内容,当<input>发射它的blur event:

function removeInput(input) {
    var val = input.value;
    var td = input.parentNode;
    td.removeChild(td.lastChild);
    td.innerHTML = val;
    td.onmouseup = function () { AddInput(td); };
}

该函数还重新分配一个mouseup事件监听器,因为它被设置为null in the AddInput功能。

请记住,虽然这在 Chrome 22 中对我有用,但可能需要一些额外的努力来测试和修复内联事件和属性分配可能存在的任何跨浏览器问题。

如果这是我的代码,我可能会使用重写“标准”版本addEventListener and getAttribute() / setAttribute(),然后使用其等效项创建仅适用于 IE 的补救路径。或者,只使用 jQuery,让它为您完成所有跨浏览器的工作。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

单击单元格外部后如何退出文本框 的相关文章

随机推荐

  • 使用 Moq 模拟惰性接口

    我想要模拟惰性接口 但我得到了object reference not set to an instance of an object例外 这是正在测试的类 public class ProductServiceService IProdu
  • 无法使用 rbenv 在 OSX 10.10 GM 3.0 上构建 Ruby 2.1.3

    我发现其他用户也遇到过类似问题的几个线程 但似乎没有一个是这样的 发出命令后 rbenv install 2 1 3 我收到以下错误 Installing ruby 2 1 3 BUILD FAILED OS X 10 10 using r
  • 为什么 AntiForgeryToken 隐藏字段与我机器上的 cookie 不同?

    我刚刚通过修改默认登录表单 使用简单的 ASP NET MVC 3 示例进行了快速测试 根据本文 都是隐藏域 RequestVerificationToken和饼干 RequestVerificationToken Lw 必须包含与生成的值
  • SQL Server:以编程方式执行维护计划

    有没有办法以编程方式执行 启动 SQL Server 维护计划 我们有一个每晚运行并使用大量数据更新数据库的 Windows 服务 一旦完成 我们希望触发数据库中的维护计划以开始运行 您可以通过以下方式开始一项属于维护计划一部分的工作sp
  • 首先使用 Entity Framework 4 代码在 DbContext.DbSet 中实现 InsertOnSubmit 等效项

    我正在使用实体框架代码优先方法 并且正在构建提供数据访问的通用存储库类 在这堂课上我想要一个Add T entity 方法 然而 没有InsertOnSubmit方法作为DbSet
  • 如何在运行时动态加载 ASP.NET Core Razor 视图

    是否可以在运行时从单独的程序集中引用 ASP NET Core Razor 视图 我知道如何使用动态加载控制器IActionDescriptorChangeProvider但找不到查看视图的方法 我想创建一个简单的插件系统并管理插件而无需重
  • Istio - 使用 URI 正则表达式匹配进行 URI 重写

    对 Istio 比较陌生 有一个关于 Istio 的问题 假设我想根据路径重写 URI 但在重写中使用原始 URI 的一部分 这是我可以使用 Regex 做的事情吗 我正在想象这样的事情 http match uri regex s can
  • 是否可以使用 .NET DeflateStream 创建 pdf?

    我正在尝试通过 C 代码创建 pdf 文件的功能 我一直在研究 PDF 规范 并能够创建一个工作 PDF 文件 方法是获取数据字符串并使用 UTF8 编码将它们编码为字节数组 我遇到的问题是当我尝试使用DeflateStream在 pdf
  • 如何重置行名称?

    这是一个示例数据集 sample1 lt data frame Names letters 1 10 Values sample seq 0 1 1 0 1 当我对数据集重新排序时 我丢失了行名称顺序 sample1 order sampl
  • 地图元素合适的 WAI-ARIA 角色属性是什么

    在我的网页中 我有一半是使用谷歌地图的地图显示 什么aria role我应该补充一下吗canvas显示地图的元素 我看过WAI ARIA 文档对于可能的角色定义 我发现的最接近的是widget 什么是合适的aria role页面上有地图吗
  • EC2 Linux 计算机上安装的 OpenJDK 8 不支持 ECDHE 密码套件

    启动时jetty distribution 9 3 0 v20150612 with openjdk 1 8 0 51在 EC2 Amazon Linux 计算机上运行时 打印出所有配置的 ECDHE 套件均不受支持 2015 08 12
  • (.net) CriticalFinalizerObject - 它到底有什么作用?

    我对这个类的理解是 当您想确保调用该类的终结器 析构函数 时应该使用它 但从我所做的一些测试来看 这似乎并不正确 如果它不能确保调用 dispose 方法 是否还有其他方法可以做到这一点 例如 如果我想确保运行某些代码来结束我的对象 即使我
  • ANSI C 联合 - 它们真的有用吗?

    从昨天对某个问题的回答中 我了解到 假设成员的底层对齐 写入一个联合成员并从另一个不同类型的成员读取值是不可移植且不安全的 因此 经过一些研究 我找到了一个书面来源 它重复了这一主张并指定了一个流行的示例 使用 int 和 float 的联
  • 如果 ngSrc 路径解析为 404,是否有办法回退到默认值?

    我正在构建的应用程序要求我的用户在加载此图像之前设置 4 条信息 该图像是应用程序的核心部分 因此损坏的图像链接使整个事情看起来像是被破坏了 我想要另一个图像代替 404 上的位置 有任何想法吗 我想避免为此编写自定义指令 我很惊讶我找不到
  • 在 iPhone Simulator 4.3/XCode 4.2 和 4.0.2 中使用 Blocks 会导致应用程序崩溃

    还有其他人在 XCode 4 2 lion 或 4 0 2 中使用 4 3 iPhone 模拟器时遇到问题吗 我的代码已经长期运行 测试并在生产中使用块来指定完成操作 例如 我使用 UIView animate 淡出标签顶部的一些文本 如下
  • 关于如何在 python 中使用属性功能的真实示例?

    我对如何使用感兴趣 property在Python中 我已经阅读了 python 文档 在我看来 其中的示例只是一个玩具代码 class C object def init self self x None property def x s
  • int.from_bytes() 是如何计算的?

    我试图理解什么from bytes 事实上确实如此 The 文档提到了这一点 byteorder 参数确定用于表示整数的字节顺序 如果字节顺序为 big 则最高有效字节位于字节数组的开头 如果字节顺序为 little 则最高有效字节位于字节
  • 使用 TypeScript 样式化组件的 'css' 属性

    styled components有一个插件可以实现以下功能 div props theme colors text gt 有什么办法可以告诉 TypeScriptcss是所有元素上的有效属性吗 将以下行添加到项目内的 TypeScript
  • .Net Core中间件-从请求中获取表单数据

    在 NET Core Web 应用程序中 我使用中间件 app UseMyMiddleware 在每个请求上添加一些日志记录 public void Configure IApplicationBuilder app IHostingEnv
  • 单击单元格外部后如何退出文本框

    我意外地在网上找到了这段代码 它解决了我的大部分问题 但是我想在这段代码中添加一件事 但我不知道我的问题是什么 如何在用户后退出文本框双击它还是在用户完成编辑之后