纯生js ajax,纯生js实现Element中input组件的部分功能(慢慢完善)并封装成组件

现在实现的有基础用法、可清空、密码框,参考链接:https://element.eleme.cn/#/zh-CN/component/input

纯生js ajax,纯生js实现Element中input组件的部分功能(慢慢完善)并封装成组件_第1张图片

纯生js ajax,纯生js实现Element中input组件的部分功能(慢慢完善)并封装成组件_第2张图片

纯生js ajax,纯生js实现Element中input组件的部分功能(慢慢完善)并封装成组件_第3张图片

HTML代码:想要测试哪个组件,直接将对应组件解开注释即可,标红的js和css记得修改成你自己的位置。

js实现可清空input组件

//普通input输入框

document.write(createElementInput())

//添加可清空功能clearable

//document.write(createElementInput("clearable"))

//实现密码框show-password

//document.write(createElementInput("show-password"))

JS代码:

function createElementInput(str){

var temp = str;

var html = "

";

html += "

if(str){

if(str == 'show-password'){

html+=" type = 'password' ";

}

}

html += "οninput='addClearNode(\""+str+"\")'";

html += "οnclick='changeColor(\""+str+"\")'";

html += "οnblur='hiddenClearNode(\""+str+"\")'/>";

if(str){

html += "";

}

html += "

"

return html;

}

//box-shadow: 0 0 0 20px pink; 通过添加阴影的方式显示边框

function changeColor(str){

//alert(str)

document.getElementById("my_input_div").style.boxShadow="0 0 0 2px #409eff";

//获取inpu的值

var value = document.getElementById('my_input').value;

var button = document.getElementById(str);

//添加判断 如果输入框中有值 则显示清空按钮

if(value){

if(button){

button.style.visibility = "visible"

}

}

}

//应该输入内容之后使用该事件

function addClearNode(str){

var value = document.getElementById('my_input').value;

var button = document.getElementById(str);

//alert(value)

if(value){

if(button){

//将button设置为可见

button.style.visibility = 'visible'

}

}else{

//判断该属性是否存在

if(button){

//将button设置为不可见

button.style.visibility = 'hidden'

}

}

//选中后div添加选中样式 高亮显示

document.getElementById("my_input_div").style.outline="0 0 0 2px #409eff";

}

//改变input中的值

function changeValue(str){

if(str){

if(str == 'clearable'){

clearValues(str);

}else if(str == 'show-password'){

showPassword();

}

}

}

//清空输入值

function clearValues(str){

document.getElementById("my_input").value = "";

document.getElementById(str).style.visibility = "hidden";

//仍然处于选中状态 div边框突出阴影

document.getElementById("my_input_div").style.boxShadow="0 0 0 2px #409eff"

}

//隐藏清除按钮

function hiddenClearNode(str){

var button = document.getElementById(str);

if(button){

button.style.visibility="hidden";

}

//将div阴影设置为0

document.getElementById("my_input_div").style.boxShadow="0 0 0"

}

//显示密码

function showPassword(){

var myInput = document.getElementById('my_input');

var password = myInput.value;

var type = myInput.type;

//alert(type)

if(type){

if(type == 'password'){

myInput.type = '';

myInput.value = password;

}else{

myInput.type = 'password';

myInput.value = password;

}

}

//仍然处于选中状态 div边框突出阴影

document.getElementById("my_input_div").style.boxShadow="0 0 0 2px #409eff"

}

CSS代码:

#my_input_div{

width: 150px;

border: 1px solid silver;

border-radius: 4px;

position: relative;

}

#my_input{

height: 30px;

width:100px;

margin-left: 6px;

border: none;

outline: none;

cursor: pointer;

}

#clearable{

height: 20px;

width: 15px;

text-align: center;

visibility:hidden;

border: none;

outline: none;

color: #409eff;

cursor: pointer;

background-image: url(../image/clear.svg);

background-repeat: no-repeat;

background-size: 12px;

position: absolute;

top: 10px;

left: 120px;

display: inline-block;

}

#show-password{

height: 20px;

width: 15px;

text-align: center;

visibility:hidden;

border: none;

outline: none;

color: #409eff;

cursor: pointer;

background-image: url(../image/eye.svg);

background-repeat: no-repeat;

background-size: 12px;

position: absolute;

top: 10px;

left: 120px;

display: inline-block;

}

剩下的功能会慢慢被完善......

js实现element中可清空的输入框(2)

接着上一篇的:js实现element中可清空的输入框(1)继续优化,感兴趣的可以去看看哟,直通车链接:https://www.cnblogs.com/qcq0703/p/14450001.html 实 ...

使用纯生js实现图片轮换

效果图预览. //W3C//D ...

使用纯生js操作cookie

前段时间做项目的时候要使用js操作cookie,jquery也有相应的插件,不过还是觉得纯生的js比较好,毕竟不依赖jq. //获得coolie 的值 function cookie(name) { ...

element中 input赋值后无法再次输入值

项目中有个需求,在表格里点击某条数据弹出窗口进行修改值,当时弹出的是input上进行修改,所以当我点击数据的时候,先进行回显原先的数据,再进行修改. 点击某条数据,弹出窗口,进行后台请求,将后台返回的 ...

头部布局,搜索验证和AJAX自动搜索提示,并封装成组件,提高代码复用性

index.html 头部区结构和样式 效果图 静态样式 index.html中的部分

& ...

vue-quill-editor 封装成组件;图片文件流上传;同一页面多个编辑器样式异常解决办法

使用方法: 引入并注册组件,然后直接使用: @getcode是同步获取编辑器内容的::contentDefault是编辑器的默认内容: 注意:如果同一个页面多个编辑器,参数id不能相同,否则只有第一个 ...

解决Echarts封装成组件时只有最后一个才会缩放的问题

参考了此文,并且强烈建议去看http://blog.csdn.net/crper/article/details/76091755 一般网上的方法都是 mounted() { this.drawCha ...

随机推荐

【.net 深呼吸】聊聊WCF服务返回XML或JSON格式数据

有时候,为了让数据可以“跨国经营”,尤其是HTTP Web有关的东东,会将数据内容以 XML 或 JSON 的格式返回,这样一来,不管客户端平台是四大文明古国,还是处于蒙昧时代的原始部落,都可以使用这 ...

psr的规范

基本代码规范 本篇规范制定了代码基本元素的相关标准, 以确保共享的PHP代码间具有较高程度的技术互通性. 关键词 "必须"("MUST")."一定不可 ...

如何编写高效的jQuery代码

jQuery的编写原则: 一.不要过度使用jQuery 1. jQuery速度再快,也无法与原生的javascript方法相比,而且建立的jQuery对象包含的信息量很庞大.所以有原生方法可以使用的场 ...

PHP中调用move_uploaded_file函数提示failed to open stream和 Unable to move

在做一个PHP文件上传系统的时候,使用move_uploaded_file进行文件上传,提示下面两个warning,不能成功上传文件 Warning: move_uploaded_file(uploa ...

【转载】Windows自带.NET Framework版本大全

转载自:http://blogs.msdn.com/b/astebner/archive/2007/03/14/mailbag-what-version-of-the-net-framework-is ...

轻量级的.Net ORM框架介绍

轻量型 ORM 组件 FluentData 官网https://fluentdata.codeplex.com/ http://www.cnblogs.com/babietongtianta/p/43 ...

db2数据库中查找数据库表

模糊查找db2数据库中的数据库表: select tabname,remarks from syscat.tables where TABNAME like  'DM%' select 'DROP T ...

Global.asax 文件说明

引用 来自  http://www.cnblogs.com/jianshao810/archive/2011/02/03/1948912.htm 在网上找了N多相关的东西总说的不够细,现在终于找到了. ...

Tab选项卡的原生写法

关键点:建立点击事件和显示事件的连接,即点li 1让对应的div1出来,很容易想到遍历.索引 ;;} ul,li{list-style: none;} .tab{background: rgba(2, ...

学习接水系统(java+thread线程)

(一)项目框架分析 对于学生并发接水项目,根据面向对象的思想,需要创建两个对象,即学生和水龙头. 接下来主要讲解不排队接水和排队接水两张情况. 项目的目录文件如下: (二)不排队接水 假设有四个学生小 ...

你可能感兴趣的:(纯生js,ajax)