用jquery实现输入框获取焦点消失文字


Posted in Javascript onApril 27, 2013

我们在登录网站的时候,文本框中经常会有提示你输入的信息,当你点击文本框,提示信息自动消失,当文本框什么都没有,而且失去焦点的时候,又有了提示文字。

1.原型开发,先做一个简单的:
我们首先需要一个html文件:

<html> 
<head> 
<title>input test</title> 
<meta name="Content-Type" content="text/html; charset=UTF-8" /> 
<style type="text/css"> 
//这里放置css 
</style> 
<script type="text/javascript" src="js/jquery.js"></script> 
<script type="text/javascript"> 
//这里放置jquery代码 
</script> 
</head> 
<body> 
<form method="POST" id="user" action=""> 
User Name:<input type="text" name="username" value="Enter your name" /><br/> 
PassWord:<input type="password" name="password" value="Enter your password" /> 
<input type="submit" name="sub" value="login" /> 
</form> 
</div> 
</body> 
</html>

下面加入jquery代码:
我使用了click 和blur内置事件类型处理,而且,只是对username框有效(因为密码框还有别的因素考虑)
<html> 
<head> 
<title>input test</title> 
<meta name="Content-Type" content="text/html; charset=UTF-8" /> 
<style type="text/css"> 
</style> 
<script type="text/javascript" src="js/jquery.js"></script> 
<script type="text/javascript"> 
$(document).ready(function(){ 
$("#username").click( 
function(){ 
if($(this).val()=="Enter your name"){ 
$(this).val(""); 
} 
}) 
$("#username").blur( 
function(){ 
if($(this).val()=="") 
{ 
$(this).val("Enter your name"); 
} 
}) 
}); 
</script> 
</head> 
<body> 
<div id="content"> 
<form method="POST" id="user" action=""> 
User Name:<input type="text" id="username" name="username" value="Enter your name" /><br/> 
PassWord:<input type="password" name="password" value="Enter your password" /> 
<input type="submit" name="sub" value="login" /> 
</form> 
</div> 
</body> 
</html>

2.做的更好
这样基本的原型就写成了,但是这个原型有许多的不足:
1.也许可以对密码框也使用这种方式,但是密码框的type类型是password,它不能显示,何来提示文字?
2. if($(this).val()=="")这种写法我可以接受,但是 if($(this).val()=="Enter your name"),你不觉得这很...要是我就想输这个呢...
3.提示文字用别的灰色的粗体表示,这样交互性是不是更强?
4.既然想要用两种字体表示,能不能把他们提取出来?写在.css里?这个是可以重用的啊!

解决办法:
1.密码框先让它的type是text的,等到点击了,我们再设置成password
2.用个变量来表示是否要切换吧。
3.设置不同的css.
4.用attr("class","class1"),attr("class","class2")来切换class,而不是引用id.(也就是说用.不用#)
下面是实现:

<html> 
<head> 
<title>input test</title> 
<style type="text/css"> 
.default { 
font-weight:bold; 
color:#787878; 
} 
.puton{ 
font-weight:normal; 
color:black; 
} 
</style> 
<script type="text/javascript" src="jquery.js"></script> 
<script type="text/javascript"> 
$(document).ready(function(){ 
var b=true; 
$("#username").click( 
function(){ 
if(b==true){ 
$(this).val(""); 
$(this).attr("class","puton"); 
b=false; 
} 
} 
) 
$("#username").blur( 
function(){ 
if( $(this).val()==""){ 
$(this).val("Enter your name"); 
$(this).attr("class","default"); 
b=true; 
} 
} 
) 
}); 
$(document).ready(function(){ 
var b=true; 
$("#password").click( 
function(){ 
if(b==true){ 
$(this).val(""); 
$(this).attr("type","password"); 
$(this).attr("class","puton"); 
b=false; 
} 
}) 
$("#password").blur( 
function(){ 
if( $(this).val()==""){ 
$(this).val("Enter your password"); 
$(this).attr("type","text"); 
$(this).attr("class","default"); 
b=true; 
} 
} 
) 
}); 
</script> 
</head> 
<body> 
<div id="content"> 
<form method="POST" id="user" action=""> 
User Name:<input type="text" id="username" class="default" name="username" value="Enter your name" /><br/> 
PassWord:<input type="text" id="password" class="default" name="password" value="Enter your password" /> 
<input type="submit" name="sub" value="login" /> 
</form> 
</div> 
</body> 
</html>

3.更多:
把css写到外部文件.
DRY原则!用插件来实现.
我在下一篇博客去实现.
author: aiqier
Javascript 相关文章推荐
jquery validator 插件增加日期比较方法
Feb 21 Javascript
jquery 学习笔记一
Apr 07 Javascript
jQuery+JSON+jPlayer实现QQ空间音乐查询功能示例
Jun 17 Javascript
js触发select onchange事件的小技巧
Aug 05 Javascript
javascript常用函数归纳整理
Oct 31 Javascript
js实现图片从左往右渐变切换效果的方法
Feb 06 Javascript
JavaScript实现模仿桌面窗口的方法
Jul 18 Javascript
Js 获取、判断浏览器版本信息的简单方法
Aug 08 Javascript
最基础的vue.js双向绑定操作
Aug 23 Javascript
在vue项目中引用Antv G2,以饼图为例讲解
Oct 28 Javascript
vue 使用localstorage实现面包屑的操作
Nov 16 Javascript
Vue全局事件总线你了解吗
Feb 24 Vue.js
javascript中强制执行toString()具体实现
Apr 27 #Javascript
用客户端js实现带省略号的分页
Apr 27 #Javascript
jquery ajax同步异步的执行最终解决方案
Apr 26 #Javascript
html中使用javascript调用本地程序(exe、doc等)实现代码
Apr 26 #Javascript
JQuery的Ajax跨域请求原理概述及实例
Apr 26 #Javascript
jquery实现textarea输入字符控制(仿微博输入控制字符)
Apr 26 #Javascript
表单类各种类型(文本框)失去焦点效果jquery代码
Apr 26 #Javascript
You might like
最简单的PHP程序--记数器
2006/10/09 PHP
openPNE常用方法分享
2011/11/29 PHP
php定界符
2014/06/19 PHP
PHP也能干大事 随机函数
2015/04/14 PHP
php使用正则表达式去掉html中的注释方法
2016/11/03 PHP
php处理静态页面:页面设置缓存时间实例
2017/06/22 PHP
PHP实现登录注册之BootStrap表单功能
2017/09/03 PHP
Yii2框架自定义验证规则操作示例
2019/02/08 PHP
为原生js Array增加each方法
2012/04/07 Javascript
jQuery事件绑定和委托实例
2014/11/25 Javascript
鼠标事件的screenY,pageY,clientY,layerY,offsetY属性详解
2015/03/12 Javascript
javascript获取重复次数最多的字符
2015/07/08 Javascript
jQuery实现平滑滚动的标签分栏切换效果
2015/08/28 Javascript
jQuery插件echarts实现的循环生成图效果示例【附demo源码下载】
2017/03/04 Javascript
vue实现百度搜索下拉提示功能实例
2017/06/14 Javascript
node实现简单的反向代理服务器
2017/07/26 Javascript
详解nodeJs文件系统(fs)与流(stream)
2018/01/24 NodeJs
JS复杂判断的更优雅写法代码详解
2018/11/07 Javascript
vue自定义指令用法经典实例小结
2019/03/16 Javascript
layui实现checkbox的目录树tree的例子
2019/09/12 Javascript
如何通过JS实现转码与解码
2020/02/21 Javascript
Vue中使用wangeditor富文本编辑的问题
2021/02/07 Vue.js
Python开发常用的一些开源Package分享
2015/02/14 Python
简单介绍Python下自己编写web框架的一些要点
2015/04/29 Python
python多线程案例之多任务copy文件完整实例
2019/10/29 Python
Pytorch 卷积中的 Input Shape用法
2020/06/29 Python
python实现文件+参数发送request的实例代码
2021/01/05 Python
HTML5无刷新改变当前url的代码
2017/03/15 HTML / CSS
HolidayLettings英国:预订最好的度假公寓、别墅和自助式住宿
2019/08/27 全球购物
WatchShop法国:英国排名第一的独立手表零售商
2020/02/17 全球购物
How to spawning asynchronous work in J2EE
2016/08/29 面试题
正科级干部考察材料
2014/05/29 职场文书
专科生就业求职信
2014/06/22 职场文书
乡镇2014法制宣传日活动总结
2014/11/01 职场文书
开票证明
2015/06/23 职场文书
MySQL生成千万测试数据以及遇到的问题
2022/08/05 MySQL