JS实现双击内容变为可编辑状态


Posted in Javascript onMarch 03, 2017

在一些网站上我们经常看到交互性很强的功能。一些用户资料可以直接双击出现文本框,并在此输入新的资料即可修改,无需再按确定按钮等。。

我在网上查了很多资料,但都有一个小bug,就是当获取焦点后,光标的位置在文本框内容是开始处,这样编辑时还需要用户再重新选择一下光标位置,这样的交互感觉不好;后来查到新的资料解决了此问题,希望可以帮助到更多的人。

代码部分:

注意:设置选择文本的内容或设置光标位置

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>JS实现双击编辑可修改状态</title>
<meta http-equiv="content-type" content="text/html;charset=utf-8" />
<script type="text/javascript">
  function ShowElement(element) {
    var oldhtml = element.innerHTML;
    //创建新的input元素
    var newobj = document.createElement('input');
    //为新增元素添加类型
    newobj.type = 'text';
    //为新增元素添加value值
    newobj.value = oldhtml;
    //为新增元素添加光标离开事件
    newobj.onblur = function() {
      element.innerHTML = this.value == oldhtml ? oldhtml : this.value;
      //当触发时判断新增元素值是否为空,为空则不修改,并返回原有值 
    }
    //设置该标签的子节点为空
    element.innerHTML = '';
    //添加该标签的子节点,input对象
    element.appendChild(newobj);
    //设置选择文本的内容或设置光标位置(两个参数:start,end;start为开始位置,end为结束位置;如果开始位置和结束位置相同则就是光标位置)
    newobj.setSelectionRange(0, oldhtml.length);
    //设置获得光标
    newobj.focus();
  }
</script>
</head>
<body>
  <dl>
    <dt>你的用户名:</dt>
    <dd ondblclick="ShowElement(this)">三人行</dd>
    <dt>你的个性档</dt>
    <dd ondblclick="ShowElement(this)">三人行,必有我师焉!</dd>
  </dl>
</body>
</html>

双击事件:ondblclick

以上所述是小编给大家介绍的JS实现双击内容变为可编辑状态,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
用 JavaScript 迁移目录
Dec 18 Javascript
javascript scrollTop正解使用方法
Nov 14 Javascript
jQuery实现移动端Tab选项卡效果
Mar 15 Javascript
Javascript操作dom对象之select全面解析
Apr 24 Javascript
JS实现div模块的截图并下载功能
Oct 17 Javascript
浅谈用Webpack路径压缩图片上传尺寸获取的问题
Feb 22 Javascript
Bootstrap4如何定制自己的颜色和风格
Feb 26 Javascript
react-router4按需加载(踩坑填坑)
Jan 06 Javascript
ajaxfileupload.js实现上传文件功能
Apr 19 Javascript
js实现tab栏切换效果
Aug 02 Javascript
js实现限定范围拖拽的示例
Oct 26 Javascript
React实现动效弹窗组件
Jun 21 Javascript
jquery表单验证实例仿Toast提示效果
Mar 03 #Javascript
JavaScript的for循环中嵌套一个点击事件的问题解决
Mar 03 #Javascript
JavaScript控制输入框中只能输入中文、数字和英文的方法【基于正则实现】
Mar 03 #Javascript
angularjs实现下拉列表的选中事件示例
Mar 03 #Javascript
JavaScript数组迭代方法
Mar 03 #Javascript
vue.js的提示组件
Mar 02 #Javascript
js实现功能比较全面的全选和多选
Mar 02 #Javascript
You might like
php empty函数判断mysql表单是否为空
2010/04/12 PHP
关于PHP自动判断字符集并转码的详解
2013/06/26 PHP
php微信公众号开发(4)php实现自定义关键字回复
2016/12/15 PHP
另类调用flash无须激活的方法
2006/12/27 Javascript
Javascript YUI 读码日记之 YAHOO.util.Dom - Part.2 0
2008/03/22 Javascript
javascript天然的迭代器
2010/10/29 Javascript
jQuery的观察者模式详解
2014/12/22 Javascript
javascript表格的渲染组件
2015/07/03 Javascript
javascript显示倒计时控制按钮的简单实现
2016/06/07 Javascript
js获取元素的标签名实现方法
2016/10/08 Javascript
JavaScript中${pageContext.request.contextPath}取值问题及解决方案
2016/12/08 Javascript
Angular2 Service实现简单音乐播放器服务
2017/02/24 Javascript
BetterScroll 在移动端滚动场景的应用
2017/09/18 Javascript
关于vuejs中v-if和v-show的区别及v-show不起作用问题
2018/03/26 Javascript
记录一次完整的react hooks实践
2019/03/11 Javascript
微信小程序下拉框搜索功能的实现方法
2019/07/31 Javascript
JavaScript 中的无穷数(Infinity)详解
2020/02/13 Javascript
JavaScript实现浏览器网页自动滚动并点击的示例代码
2020/12/05 Javascript
玩转python爬虫之爬取糗事百科段子
2016/02/17 Python
使用pandas读取csv文件的指定列方法
2018/04/21 Python
Python爬取成语接龙类网站
2018/10/19 Python
Python HTML解析器BeautifulSoup用法实例详解【爬虫解析器】
2019/04/05 Python
PyQt5多线程刷新界面防假死示例
2019/12/13 Python
python构造函数init实例方法解析
2020/01/19 Python
Python代码中如何读取键盘录入的值
2020/05/27 Python
Python定义一个Actor任务
2020/07/29 Python
Python中全局变量和局部变量的理解与区别
2021/02/07 Python
CSS3 倾斜的网页图片库实例教程
2009/11/14 HTML / CSS
几道PHP的面试题
2012/05/19 面试题
商务日语毕业生自荐信范文
2013/11/14 职场文书
高级电工工作职责
2013/11/21 职场文书
八年级美术教学反思
2014/02/02 职场文书
房地产公司见习自我鉴定
2014/04/28 职场文书
2015年村计划生育工作总结
2015/04/28 职场文书
死亡诗社观后感
2015/06/05 职场文书
如何Tomcat中使用ipv6地址
2022/05/06 Servers