用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连缀语法如何实现
Nov 29 Javascript
JQuery中使用on方法绑定hover事件实例
Dec 09 Javascript
JS解析XML文件和XML字符串详解
Apr 17 Javascript
浅谈document.write()输出样式
May 07 Javascript
javascript清空table表格的方法
May 14 Javascript
jQuery Select下拉框操作小结(推荐)
Jul 22 Javascript
angular实现form验证实例代码
Jan 17 Javascript
angular-cli修改端口号【angular2】
Apr 19 Javascript
关于vue中watch检测到不到对象属性的变化的解决方法
Feb 08 Javascript
详解小程序缓存插件(mrc)
Aug 17 Javascript
vue中使用[provide/inject]实现页面reload的方法
Sep 30 Javascript
处理canvas绘制图片模糊问题
May 11 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
php数组函数序列 之array_count_values() 统计数组中所有值出现的次数函数
2011/10/29 PHP
PHP数组循环操作详细介绍 附实例代码
2013/02/03 PHP
根据ip调用新浪api获取城市名并转成拼音
2014/03/07 PHP
如何修改yii2.0自带的user表为其它的表
2017/08/01 PHP
imagettftext() 失效,不起作用
2021/03/09 PHP
js本身的局限性 别让javascript做太多事
2010/03/23 Javascript
使用PHP+JQuery+Ajax分页的实现
2013/04/23 Javascript
jquery分页对象使用示例
2014/04/01 Javascript
Node.js中的事件驱动编程详解
2014/08/16 Javascript
PHP中使用微秒计算脚本执行时间例子
2014/11/19 Javascript
jQuery性能优化技巧分析
2015/02/20 Javascript
Node.js dgram模块实现UDP通信示例代码
2017/09/26 Javascript
jQuery实现的监听导航滚动置顶状态功能示例
2018/07/23 jQuery
聊聊Vue中provide/inject的应用详解
2019/11/10 Javascript
JavaScript React如何修改默认端口号方法详解
2020/07/28 Javascript
[01:09]模型精美,特效酷炫!TI9不朽宝藏Ⅰ鉴赏
2019/05/10 DOTA
Python Socket编程详细介绍
2017/03/23 Python
PyTorch线性回归和逻辑回归实战示例
2018/05/22 Python
python 读取目录下csv文件并绘制曲线v111的方法
2018/07/06 Python
在python中利用opencv简单做图片比对的方法
2019/01/24 Python
Python爬虫实现爬取百度百科词条功能实例
2019/04/05 Python
Django 框架模型操作入门教程
2019/11/05 Python
Python netmiko模块的使用
2020/02/14 Python
python正则表达式实例代码
2020/03/03 Python
基于Keras中Conv1D和Conv2D的区别说明
2020/06/19 Python
pytorch 查看cuda 版本方式
2020/06/23 Python
Python 通过爬虫实现GitHub网页的模拟登录的示例代码
2020/08/17 Python
Python创建简单的神经网络实例讲解
2021/01/04 Python
HTML5 绘制图像(上)之:关于canvas元素引领下一代web页面的问题
2013/04/24 HTML / CSS
诺心蛋糕官网:LE CAKE
2018/08/25 全球购物
Aurora London官网:奢华、负担得起的皮革手袋
2020/08/01 全球购物
幼儿园三八妇女节活动总结
2015/02/06 职场文书
施工员岗位职责
2015/02/10 职场文书
中学生自我评价范文
2015/03/03 职场文书
python如何进行基准测试
2021/04/26 Python
CentOS7环境下MySQL8常用命令小结
2022/06/10 Servers