用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 相关文章推荐
Js的MessageBox
Dec 03 Javascript
javascript 面向对象,实现namespace,class,继承,重载
Oct 29 Javascript
jQuery UI-Draggable 参数集合
Jan 10 Javascript
jquery easyui combox一些实用的小方法
Dec 25 Javascript
12行javascript代码绘制一个八卦图
Apr 02 Javascript
详解javascript遍历方式
Nov 11 Javascript
详解MVC如何使用开源分页插件(shenniu.pager.js)
Dec 16 Javascript
Angular 4.x 动态创建表单实例
Apr 25 Javascript
教你完全理解ReentrantLock重入锁
Jun 03 Javascript
微信小程序之几种常见的弹框提示信息实现详解
Jul 11 Javascript
多个vue子路由文件自动化合并的方法
Sep 03 Javascript
Weex开发之地图篇的具体使用
Oct 16 Javascript
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
eWebEditor v3.8 商业完整版 (PHP)
2006/12/06 PHP
Php图像处理类代码分享
2012/01/19 PHP
Thinkphp搭建包括JS多语言的多语言项目实现方法
2014/11/24 PHP
PHP简单判断手机设备的方法
2016/08/23 PHP
php下的原生ajax请求用法实例分析
2020/02/28 PHP
用js实现的一个Flash滚动轮换显示图片代码生成器
2007/03/14 Javascript
比较全面的event对像在IE与FF中的区别 推荐
2009/09/21 Javascript
js 格式化时间日期函数小结
2010/03/20 Javascript
用js实现判断当前网址的来路如果不是指定的来路就跳转到指定页面
2011/05/02 Javascript
jquery插件制作简单示例说明
2012/02/03 Javascript
JS中实现replaceAll的方法(实例代码)
2013/11/12 Javascript
清除div下面的所有标签的方法
2014/02/17 Javascript
浅析javascript中function 的 length 属性
2014/05/27 Javascript
JSONP之我见
2015/03/24 Javascript
js无提示关闭浏览器窗口的两种方法分析
2016/11/06 Javascript
详解vuelidate 对于vueJs2.0的验证解决方案
2017/03/09 Javascript
JavaScript实现的原生态兼容IE6可调可控滚动文字功能详解
2017/09/19 Javascript
vue-cli下的vuex的简单Demo图解(实现加1减1操作)
2018/02/26 Javascript
简单的三步vuex入门
2018/05/20 Javascript
深入理解Vue 组件之间传值
2018/08/16 Javascript
Nuxt.js实现一个SSR的前端博客的示例代码
2019/09/06 Javascript
Vue+Spring Boot简单用户登录(附Demo)
2020/11/12 Javascript
Python中非常实用的一些功能和函数分享
2015/02/14 Python
python strip() 函数和 split() 函数的详解及实例
2017/02/03 Python
浅谈Pandas:Series和DataFrame间的算术元素
2018/12/22 Python
python ipset管理 增删白名单的方法
2019/01/14 Python
Python爬取视频(其实是一篇福利)过程解析
2019/08/01 Python
PyTorch中Tensor的数据类型和运算的使用
2020/09/03 Python
HTML5 Video/Audio播放本地文件示例介绍
2013/11/18 HTML / CSS
爱尔兰电子产品购物网站:Komplett.ie
2018/04/04 全球购物
工商管理应届生求职信
2013/10/07 职场文书
资料员岗位职责
2013/11/17 职场文书
中药专业毕业自荐书范文
2014/02/08 职场文书
安全承诺书范文
2014/03/26 职场文书
个人先进事迹材料
2014/12/29 职场文书
导游词之吉林花园山
2019/10/17 职场文书