CSS JQuery input+label实现placeholder效果
2017-07-26 16:11
393 查看
参考文献
input+label制作兼容IE8的输入提示,实现placeholder效果,下附代码
js 实时监听input中值变化
onpropertychange:只要当前对象属性发生改变,都会触发事件,但是它是IE专属的;
oninput是onpropertychange的非IE浏览器版本,支持firefox和opera等浏览器,但有一点不同,它绑定于对象时,并非该对象所有属性改变都能触发事件,它只在对象value值发生改变时奏效。
oninput是onpropertychange的非IE浏览器版本,支持firefox和opera等浏览器,但有一点不同,它绑定于对象时,并非该对象所有属性改变都能触发事件,它只在对象value值发生改变时奏效。
效果 (测试环境:IE11)
点击
输入内容
删除内容
这里有一个bug
当页面跳转之后后退时,因为没有触发jQuery 内容更改事件,所以label中的提示文字会出现。
解决方案:label处加上style="display:none;" 默认不显示,通过jQuery在页面加载时显示它。
input+label制作兼容IE8的输入提示,实现placeholder效果,下附代码
js 实时监听input中值变化
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <!-- 引入jquery,否则jquery函数无法调用 --> <script type="text/javascript" src="static/js/jquery-3.2.1.min.js"></script> <style> .input { position: relative; } .input .input-text { /*文本框*/ width: 258px; /*宽度*/ height: 35px; /*高度*/ border: 1px #AAAAAA solid; border-radius: 3px; /*圆角边框宽度*/ font-size: 17px; /*文字大小*/ padding-left: 10px; /* 设置元素左内边距(空白) */ } .input label { color: #C1C0C0; position: absolute; top: 12px; left: 15px; } </style> <script type="text/javascript"> $(function() { $('#phoneNumber').bind('input propertychange', function() { if($(this).val() == ""){ $('#phoneNumberLabel').show(); } else{ $('#phoneNumberLabel').hide(); } }); }); </script> <title>Insert title here</title> </head> <body> <div class="input"> <input id="phoneNumber" type="text" class="input-text" /> <label id="phoneNumberLabel" for="phoneNumber">手机号</label> <a href="toRegister">注册</a> </div> </body> </html>
onpropertychange:只要当前对象属性发生改变,都会触发事件,但是它是IE专属的;
oninput是onpropertychange的非IE浏览器版本,支持firefox和opera等浏览器,但有一点不同,它绑定于对象时,并非该对象所有属性改变都能触发事件,它只在对象value值发生改变时奏效。
oninput是onpropertychange的非IE浏览器版本,支持firefox和opera等浏览器,但有一点不同,它绑定于对象时,并非该对象所有属性改变都能触发事件,它只在对象value值发生改变时奏效。
效果 (测试环境:IE11)
点击
输入内容
删除内容
这里有一个bug
当页面跳转之后后退时,因为没有触发jQuery 内容更改事件,所以label中的提示文字会出现。
解决方案:label处加上style="display:none;" 默认不显示,通过jQuery在页面加载时显示它。
相关文章推荐
- 用input输入框实现好看的复选框效果(css+jq)
- jQuery+css实现百度百科的页面导航效果
- html、css和jquery相结合实现简单的进度条效果实例代码
- jQuery+CSS实现的图片滚动效果
- jQuery实现可高亮显示的二级CSS菜单效果
- jQuery实现input文本框内灰色提示文本效果
- jQuery+CSS实现的高亮显示选中二级菜单效果
- jquery+css实现的红色线条横向二级菜单效果
- JQuery+CSS实现的菜单效果
- jQuery+CSS实现滑动的标签分栏切换效果
- jQuery+css实现的换页标签栏效果
- jquery+CSS实现的多级竖向展开树形TRee菜单效果
- Jquery结合div+css实现文字间断停顿向上滚动效果
- jquery+css实现动感的图片切换效果
- placeholder 效果的实现,input提示字,获取焦点时消失
- 分享使用jQuery和CSS实现的一个超酷缩略图悬浮逼近效果
- jQuery+css实现百度百科的页面导航效果
- jquery+css实现简单的窥镜效果
- JQuery实现密码有短暂的显示过程和实现 input hint效果
- jquery+css实现简单的图片轮播效果