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 相关文章推荐
WordPress 照片lightbox效果的运用几点
Jun 22 Javascript
基于jquery实现的移入页面上空文本框时,让它变为焦点,移出清除焦点
Jul 26 Javascript
基于jquery中children()与find()的区别介绍
Apr 26 Javascript
基于javascript实现仿百度输入框自动匹配功能
Jan 03 Javascript
JavaScript使ifram跨域相互访问及与PHP通信的实例
Mar 03 Javascript
Bootstrap零基础入门教程(三)
Jul 18 Javascript
AngularJS 与百度地图的结合实例
Oct 20 Javascript
JS实现异步上传压缩图片
Apr 22 Javascript
Vue 项目分环境打包的方法示例
Aug 03 Javascript
React 使用Hooks简化受控组件的状态绑定
Mar 18 Javascript
JS实现马赛克图片效果完整示例
Apr 13 Javascript
JavaScript Dom实现轮播图原理和实例
Feb 19 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 文件上传代码(限制jpg文件)
2010/01/05 PHP
ThinkPHP使用PHPExcel实现Excel数据导入导出完整实例
2014/07/22 PHP
Laravel框架路由和控制器的绑定操作方法
2018/06/12 PHP
js parentElement和offsetParent之间的区别
2010/03/23 Javascript
JQuery入门—编写一个简单的JQuery应用案例
2013/01/03 Javascript
jquery监听div内容的变化具体实现思路
2013/11/04 Javascript
JavaScript时间转换处理函数
2015/04/14 Javascript
Jquery ajax请求导出Excel表格的实现代码
2016/06/08 Javascript
Node.js中防止错误导致的进程阻塞的方法
2016/08/11 Javascript
AngularJS 所有版本下载地址
2016/09/14 Javascript
vue.js表格组件开发的实例详解
2016/10/12 Javascript
js 简易版滚动条实例(适用于移动端H5开发)
2017/06/26 Javascript
微信小程序 swiper 组件遇到的问题及解决方法
2019/05/26 Javascript
原生js实现商品筛选功能
2019/10/28 Javascript
React+EggJs实现断点续传的示例代码
2020/07/07 Javascript
[01:11:08]Winstrike vs NB 2018国际邀请赛淘汰赛BO1 8.21
2018/08/22 DOTA
python清除字符串里非字母字符的方法
2015/07/02 Python
python设计模式大全
2016/06/27 Python
python导出hive数据表的schema实例代码
2018/01/22 Python
python使用锁访问共享变量实例解析
2018/02/08 Python
使用pycharm在本地开发并实时同步到服务器
2019/08/02 Python
python中的错误如何查看
2020/07/08 Python
python mongo 向数据中的数组类型新增数据操作
2020/12/05 Python
CSS类名支持中文命名的示例
2014/04/04 HTML / CSS
俄罗斯卫浴采暖及维修用品超级市场:Dkrussia
2020/05/12 全球购物
static函数与普通函数有什么区别
2015/12/25 面试题
Java中采用什么结构来捕获、处理异常?各子句的顺序、功能如何
2013/10/07 面试题
销售经理岗位职责
2014/03/16 职场文书
重阳节标语大全
2014/10/07 职场文书
小学生安全教育广播稿
2014/10/20 职场文书
八年级上册语文教学计划
2015/01/22 职场文书
小学端午节活动总结
2015/02/11 职场文书
2015社区精神文明建设工作总结
2015/04/21 职场文书
南京南京观后感
2015/06/02 职场文书
mysql外连接与内连接查询的不同之处
2021/06/03 MySQL
css样式important规则的正确使用方式
2022/06/10 HTML / CSS