input 输入框获得/失去焦点时隐藏/显示文字(jquery版)


Posted in Javascript onApril 02, 2013

input 输入框获得和失去焦点时隐藏或者显示文字我们先看下效果图
输入框默认状态:
input 输入框获得/失去焦点时隐藏/显示文字(jquery版) 
输入框获取焦点状态:
input 输入框获得/失去焦点时隐藏/显示文字(jquery版) 
大家可以看效果图的搜索输入框,默认显示着“用户名/Email”的提示,当这个 input 输入框获得焦点时,就自动清空等待用户输入,当用户啥也没输入就离开这个 input 输入框时,输入框内又再次显示“用户名/Email”的提示。是不是很常见?很多搜索、登录、表单都会用到这个效果,但是我看了N多个网站,有90%以上是这么实现的:

<input type="text" value="搜索关键字" onfocus="if(this.value == '搜索关键字') this.value = ''" onblur="if(this.value =='') this.value = '搜索关键字'" />

我是非常反对把 javascript 写在 html 标签里的,这和 style 写在 html 标签里一样,虽然不违反 W3C 标准,但也不推荐这么写。因为:
1.完全没有复用性可言,如果是个表单,输入框很多,每个都需要这样的效果,那就每个都这么处理吗?
2.如果要修改其中的提示文字,费时费力又不好维护。
3.我们倡导结构(html)、表现(css)、行为(javascript)三者分离,这才是一个好的页面。
那要怎么写才能实现这个效果,而且既有复用性,又好维护,又不需要把 js 写进 html 里呢?
具体方法如下:
首先肯定是引入jQuery
Html代码:
<div><input type="text" value="提示测试" class="input_test" /></div> 
<div><input type="text" value="请输入搜索关键" class="input_test" /></div>

jQuery代码:
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script> 
<script type="text/javascript"> 
$(function(){ 
$('.input_test').bind({ 
focus:function(){ 
if (this.value == this.defaultValue){ 
this.value=""; 
} 
}, 
blur:function(){ 
if (this.value == ""){ 
this.value = this.defaultValue; 
} 
} 
}); 
}) 
</script>

只要在实现的input输入框加上”input_test”这个class就可以轻松实现了
查看:Demo
Javascript 相关文章推荐
一实用的实现table排序的Javascript类库
Sep 12 Javascript
jQuery 1.2.x 升? 1.3.x 注意事项
May 06 Javascript
jQuery contains过滤器实现精确匹配使用方法
Apr 12 Javascript
Webpack 实现 Node.js 代码热替换
Oct 22 Javascript
jQuery继承extend用法详解
Oct 10 Javascript
Bootstrap下拉菜单样式
Feb 07 Javascript
[js高手之路]设计模式系列课程-发布者,订阅者重构购物车的实例
Aug 29 Javascript
Vue全家桶实践项目总结(推荐)
Nov 04 Javascript
使用vue-router完成简单导航功能【推荐】
Jun 28 Javascript
Javascript通过控制类名更改样式
May 24 Javascript
vue封装可复用组件confirm,并绑定在vue原型上的示例
Oct 31 Javascript
动态规划之使用备忘录来改进Javascript函数
Apr 07 Javascript
JQuery给元素添加/删除节点比如select
Apr 02 #Javascript
Extjs4 消息框去掉关闭按钮(类似Ext.Msg.alert)
Apr 02 #Javascript
extjs关于treePanel+chekBox全部选中以及清空选中问题探讨
Apr 02 #Javascript
关于extjs treepanel复选框选中父节点与子节点的问题
Apr 02 #Javascript
extjs tabpanel限制选项卡数量实现思路及代码
Apr 02 #Javascript
extjs 3.31 TreeGrid实现静态页面加载json到TreeGrid里面
Apr 02 #Javascript
Extjs4.0设置Ext.data.Store传参的请求方式(默认为GET)
Apr 02 #Javascript
You might like
BBS(php &amp; mysql)完整版(二)
2006/10/09 PHP
php自动获取字符串编码函数mb_detect_encoding
2011/05/31 PHP
php禁止浏览器使用缓存页面的方法
2014/11/07 PHP
PHP获取真实客户端的真实IP
2017/03/07 PHP
Yii2第三方类库插件Imagine的安装和使用
2017/07/06 PHP
PHP实现QQ登录的开原理和实现过程
2018/02/04 PHP
JavaScript Array扩展实现代码
2009/10/14 Javascript
jQuery UI Dialog控件中的表单无法正常提交的解决方法
2010/12/19 Javascript
浅析document.ready和window.onload的区别讲解
2013/12/18 Javascript
javascript 控制input只允许输入的各种指定内容
2014/06/19 Javascript
javascript实现的一个随机点名功能
2014/08/26 Javascript
javascript Slip.js实现整屏滑动的手机网页
2015/11/25 Javascript
作为老司机使用 React 总结的 11 个经验教训
2017/04/08 Javascript
node.js中cluster的使用教程
2017/06/09 Javascript
微信小程序实现多个按钮toggle功能的实例
2017/06/13 Javascript
[04:46]2018年度玩家喜爱的电竞媒体-完美盛典
2018/12/16 DOTA
Python字典操作详细介绍及字典内建方法分享
2018/01/04 Python
Python字典循环添加一键多值的用法实例
2019/01/20 Python
Python button选取本地图片并显示的实例
2019/06/13 Python
Python基于gevent实现高并发代码实例
2020/05/15 Python
基于PyTorch的permute和reshape/view的区别介绍
2020/06/18 Python
详解Python多线程下的list
2020/07/03 Python
Python读取ini配置文件传参的简单示例
2021/01/05 Python
详解matplotlib中pyplot和面向对象两种绘图模式之间的关系
2021/01/22 Python
四方通行旅游网:台湾订房、出国旅游
2017/09/20 全球购物
ECCO俄罗斯官网:北欧丹麦鞋履及皮具品牌
2020/06/26 全球购物
描述一下JVM加载class文件的原理机制
2013/12/08 面试题
linux面试题参考答案(5)
2016/11/05 面试题
中专毕业生求职简历的自我评价
2013/10/21 职场文书
会计出纳员的自我评价
2014/01/15 职场文书
小区门卫岗位职责范本
2014/08/24 职场文书
出纳试用期自我鉴定范文
2014/09/16 职场文书
土木工程专业本科生求职信
2014/10/01 职场文书
教师个人学习总结
2015/02/11 职场文书
Go Gin实现文件上传下载的示例代码
2021/04/02 Golang
Python中Numpy和Matplotlib的基本使用指南
2021/11/02 Python