用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 替换
Feb 19 Javascript
IE6下通过a标签点击切换图片的问题
Nov 14 Javascript
解决微信浏览器Javascript无法使用window.location.reload()刷新页面
Jun 21 Javascript
javascript加载xml 并解析各节点的值(实现方法)
Oct 12 Javascript
JS匿名函数类生成方式实例分析
Nov 26 Javascript
boostrapTable的refresh和refreshOptions区别浅析
Jan 22 Javascript
vue mint-ui 实现省市区街道4级联动示例(仿淘宝京东收货地址4级联动)
Oct 16 Javascript
Vuejs 单文件组件实例详解
Feb 09 Javascript
浅谈Vue网络请求之interceptors实际应用
Feb 28 Javascript
原生JS实现简单的无缝自动轮播效果
Sep 26 Javascript
vue与bootstrap实现简单用户信息添加删除功能
Feb 15 Javascript
深入学习Vue nextTick的用法及原理
Oct 08 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
介绍几个array库的新函数 php
2006/12/29 PHP
Ajax+PHP 边学边练 之二 实例
2009/11/24 PHP
PHP引用符&amp;的用法详细解析
2013/08/22 PHP
ThinkPHP之R方法实例详解
2014/06/20 PHP
php使用递归函数实现数字累加的方法
2015/03/16 PHP
变量在 PHP7 内部的实现(二)
2015/12/21 PHP
PHP strip_tags() 去字符串中的 HTML、XML 以及 PHP 标签的函数
2016/05/22 PHP
javascript编程起步(第五课)
2007/01/10 Javascript
JavaScript 事件系统
2010/07/22 Javascript
用JS实现一个TreeMenu效果分享
2011/08/28 Javascript
jQuery EasyUI API 中文文档 可调整尺寸
2011/09/29 Javascript
谷歌地图打不开的解决办法
2014/08/07 Javascript
分享一个常用的javascript静态类
2014/12/31 Javascript
javascript的tab切换原理与效果实现方法
2015/01/10 Javascript
如何使用jQuery技术开发ios风格的页面导航菜单
2015/07/29 Javascript
基于javascript实现随机颜色变化效果
2016/01/14 Javascript
深入理解jquery中的事件与动画
2016/05/24 Javascript
window.close(); 关闭浏览器窗口js代码的总结介绍
2016/07/14 Javascript
jQuery手指滑动轮播效果
2016/12/22 Javascript
详解node-ccap模块生成captcha验证码
2017/07/01 Javascript
ES6扩展运算符用法实例分析
2017/10/31 Javascript
vue.js过滤器+ajax实现事件监听及后台php数据交互实例
2018/05/22 Javascript
Vue-cli3项目配置Vue.config.js实战记录
2018/07/29 Javascript
javascript实现支付宝滑块验证码效果
2020/07/24 Javascript
python使用ddt过程中遇到的问题及解决方案【推荐】
2018/10/29 Python
详解python列表(list)的使用技巧及高级操作
2019/08/15 Python
使用 pytorch 创建神经网络拟合sin函数的实现
2020/02/24 Python
Django后端按照日期查询的方法教程
2021/02/28 Python
精伦电子Java笔试题
2013/01/16 面试题
广州御银科技股份有限公司试卷(C++)
2016/11/04 面试题
工程招投标邀请书
2014/01/26 职场文书
公司合作意向书
2014/04/01 职场文书
公司试用期员工自我评价
2014/09/17 职场文书
2014大学生党员评议个人总结
2014/09/22 职场文书
酒店辞职书范文
2015/02/26 职场文书
村主任当选感言
2015/08/01 职场文书