用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 相关文章推荐
Javascript 中介者模式实例
Dec 16 Javascript
JS添加删除一组文本框并对输入信息加以验证判断其正确性
Apr 11 Javascript
Jquery api 速查表分享
Jan 12 Javascript
深入理解JavaScript系列(43):设计模式之状态模式详解
Mar 04 Javascript
JavaScript点击按钮后弹出透明浮动层的方法
May 11 Javascript
基于socket.io+express实现多房间聊天
Mar 17 Javascript
JS类的定义与使用方法深入探索
Nov 26 Javascript
canvas绘制多边形
Feb 24 Javascript
JavaScript中splice与slice的区别
May 09 Javascript
在vue中使用jsx语法的使用方法
Sep 30 Javascript
JS组件库AlloyTouch实现图片轮播过程解析
May 29 Javascript
vue3使用vuedraggable实现拖拽功能
Apr 06 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&amp;&amp;mysql)二
2006/10/09 PHP
set_include_path在win和linux下的区别
2008/01/10 PHP
php中将数组存到文件里的实现代码
2012/01/19 PHP
php bootstrap实现简单登录
2016/03/08 PHP
Javascript 继承机制的实现
2009/08/12 Javascript
js模拟淘宝网的多级选择菜单实现方法
2015/08/18 Javascript
基于Arcgis for javascript实现百度地图ABCD marker的效果
2015/09/12 Javascript
结合代码图文讲解JavaScript中的作用域与作用域链
2016/07/05 Javascript
AngularJs bootstrap搭载前台框架——基础页面
2016/09/01 Javascript
全面解析node 表单的图片上传
2016/11/21 Javascript
input获取焦点时底部菜单被顶上来问题的解决办法
2017/01/24 Javascript
浏览器调试动态js脚本的方法(图解)
2018/01/19 Javascript
Vue实现点击时间获取时间段查询功能
2020/08/21 Javascript
详解javascript 正则表达式之分组与前瞻匹配
2018/05/30 Javascript
layui表单提交到后台自动封装到实体类的方法
2019/09/12 Javascript
[02:55]DOTA2英雄基础教程 发条技师
2013/12/04 DOTA
Python的Django框架中从url中捕捉文本的方法
2015/07/20 Python
在Ubuntu系统下安装使用Python的GUI工具wxPython
2016/02/18 Python
django实现登录时候输入密码错误5次锁定用户十分钟
2017/11/05 Python
tensorflow实现简单的卷积神经网络
2018/05/24 Python
python计算日期之间的放假日期
2018/06/05 Python
tensorflow使用神经网络实现mnist分类
2018/09/08 Python
Pytorch 中retain_graph的用法详解
2020/01/07 Python
配置python的编程环境之Anaconda + VSCode的教程
2020/03/29 Python
详解pandas.DataFrame.plot() 画图函数
2020/06/14 Python
日本著名的平价时尚女性购物网站:Fifth
2016/08/24 全球购物
美国高端寝具品牌:Coyuchi
2017/02/08 全球购物
梅西酒窖:Macy’s Wine Cellar
2018/01/07 全球购物
私有程序集与共享程序集有什么区别
2013/04/05 面试题
代码中finally中的代码会不会执行
2012/02/06 面试题
建材业务员岗位职责
2013/12/08 职场文书
中专毕业生自我鉴定
2014/02/02 职场文书
关于旷工的检讨书
2014/02/02 职场文书
电子商务专业自荐信
2014/06/02 职场文书
干部理论学习心得体会
2016/01/21 职场文书
python基于tkinter制作m3u8视频下载工具
2021/04/24 Python