zoukankan      html  css  js  c++  java
  • 类似于资料修改并且保存的操作

    前几天遇到有人问想做一个修改和保存资料的效果 于是想了想 研究了下

    想到了三种实现方式  当然用户体验有待研究。。由于刚开始写博客 语言组织和代码都比较差 欢迎大家指正 

    1、类似于QQ的资料修改(本来就是input输入框先隐藏边框  鼠标移动上去出现边框 得到焦点时 可以编辑 失去焦点时保存)

    如下图 这个就不说啦 太简单了

    代码如下

    <!DOCTYPE html>
    <html>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <head>
    <title>这里主要写思路 布局就没那么细啦</title>
    <style type="text/css">
    *{  font-size:30px;}
    span{  vertical-align:middle}
    input{ border:1px solid #FFF; solid line-height:12px;}
    input:hover{border:1px solid #000;}
    </style>
    </head>
    <body>
    <span>请输入名称:</span><input value="星米"/>
    
    </body>
    </html>
    

    2.文本在页面上保存时用文本标签包裹,当点击修改时在对于的文本后面插入input  并且把标签innerHTML赋给input的value

    代码如下

    <!DOCTYPE html>
    <html>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <head>
    <title>代码二</title>
    <style type="text/css">
    </style>
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
    <script>
    function edit(obj){
    	obj=$(obj).parent().parent();
    	obj.children('li:not(:last)').find("span").each(function(){
    	var self=$(this);
    	self.html('<input type="text" value="'+self.html()+'" class="ipt" />');
    	});
    	obj.children('li:last').html('<a href="#" onclick="save(this)">保存</a>');
    	obj=null;
    }
    function save(obj){
    	obj=$(obj).parent().parent();
    	obj.children('li:not(:last)').find("span").each(function(){
    	var self=$(this);
    	self.html(self.children('input[class="ipt"]').val());
    	});
    	obj.children('li:last').html('<a href="#" onclick="edit(this)">更改</a>');
    	obj=null;
    }
    </script>
    </head>
    <body>
    
    <ul>
    	<li><span>姓名</span><span>姓名</span><span>姓名</span></li>
    	<li><span>AAAAAAAA</span><span>bbbbbbbb</span></li>
    	<li><a href="#" onclick="edit(this)">更改</a></li>
    </ul>
    
    </body>
    </html>
    

    3、利用input的readyonly属性来控制为只读 当点击修改时移除掉readyonly 属性

    代码如下

    <!DOCTYPE html>
    <html>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <head>
    <title>代码三</title>
    <style type="text/css">
    input{ float:left;}
    p{ float:left;margin:5px; padding:0 5px; background:#555;cursor:pointer;}
    p span{ display:block; 100%; height:100%}
    </style>
    
    </head>
    <input id="setText" value="15647"/>
    <p id="edit">修改</p>
    <p id="save">保存</p>
    <script>
    setText.readOnly = true;
    edit.onclick = function(){
    	setText.readOnly = false;
    	setText.focus();
    }
    var save = document.getElementById("save");
    save.onclick = function(){
    	setText.readOnly = true;
    	setText.blur();
    }
    </script>
    </body>
    </html>
    

      

  • 相关阅读:
    小峰视频十三:二维数组
    小峰视频十二:java数组
    小峰视频十一:循环结构的跳出
    小峰视频十:循环while、for
    小峰视频九:选择语句if、switch
    小峰视频八:逻辑运算符、关系运算符、三门运算符
    小峰视频七:数据类型转换、数据运算
    eggjs+vue实现下载图片 js下载网络图片
    报错/Warning: You should not use <Route component> and <Route children> in the same route; <Route component> will be ignored
    React/事件系统
  • 原文地址:https://www.cnblogs.com/xingmi/p/2530720.html
Copyright © 2011-2022 走看看