js+css实现增加表单可用性之提示文字


Posted in Javascript onJune 03, 2013

平常设计表单的时候,我们会加入一些提示文字,比如说在搜索框里,我们会提示“请输入关键字”,并在搜索框得到焦点和失去焦点的时候适时的隐藏和显示,最常见的做法是利用value来设置:

<form id="search"> 
<input type="text" id="keyword" name="keyword" value="请输入关键字"> 
<button>搜索</button> 
</form> 
<script> 
document.getElementById("keyword").onfocus = function() { 
if (document.getElementById("keyword").value == "请输入关键字") { 
document.getElementById("keyword").value = ""; 
} 
} 
document.getElementById("keyword").onblur = function() { 
if (document.getElementById("keyword").value == "") { 
document.getElementById("keyword").value = "请输入关键字"; 
} 
} 
document.getElementById("search").onsubmit = function() { 
var keyword = document.getElementById("keyword").value; 
if (keyword == "" || keyword == "请输入关键字") { 
alert("请输入关键字"); 
return false; 
} 
return true; 
} 
</script>

如此的代码虽然实现了我们要的功能,但却不干净,原因在于“请输入关键字”这样的文本仅仅是提示文字而已,而不是value,虽然技术上没有大问题,但很多时候还是显得麻烦,比如说我们可能像让提示文字显示的颜色是灰色,而用户键入的文本则显示黑色。
下面看看如何利用css来实现更好的方式:
<style> 
#wrapper { position: relative; display: inline; } 
#description { position: absolute; left: 1px; color: #999999; display: none; } 
</style> 
<form id="search"> 
<div id="wrapper"> 
<label for="keyword" id="description">请输入关键字</label> 
<input type="text" id="keyword" name="keyword"> 
</div> 
<button>搜索</button> 
</form> 
<script> 
window.onload = function() { 
if (!document.getElementById("keyword").value) { 
document.getElementById("description").style.display = "inline"; 
} 
}; 
document.getElementById("keyword").onfocus = function() { 
if (!document.getElementById("keyword").value) { 
document.getElementById("description").style.display = "none"; 
} 
} 
document.getElementById("keyword").onblur = function() { 
if (!document.getElementById("keyword").value) { 
document.getElementById("description").style.display = "inline"; 
} 
} 
document.getElementById("search").onsubmit = function() { 
if (!document.getElementById("keyword").value) { 
alert("请输入关键字"); 
return false; 
} 
return true; 
} 
</script>

这样的实现方式虽然CSS,JS代码都多了一些,但是结构更合理,通过引入label来显示提示文字(通过CSS的position属性定位),让value本身更单纯,而且提示文字和用户输入的文本在样式更容易控制,比如颜色的深浅,从而提高表单可用性。
Javascript 相关文章推荐
通过 Dom 方法提高 innerHTML 性能
Mar 26 Javascript
js获取url中的参数且参数为中文时通过js解码
Mar 19 Javascript
Angularjs基础知识及示例汇总
Jan 22 Javascript
浅谈jquery中的each方法$.each、this.each、$.fn.each
Jun 23 Javascript
jQuery新窗口打开外链接
Jul 21 Javascript
AngularJS基础 ng-if 指令用法
Aug 01 Javascript
基于Vue2的移动端开发环境搭建详解
Nov 03 Javascript
Node.js学习入门
Jan 03 Javascript
使用Vue 实现滑动验证码功能
Jun 27 Javascript
JavaScript定时器设置、使用与倒计时案例详解
Jul 08 Javascript
JavaScript或jQuery 获取option value值方法解析
May 12 jQuery
js实现tab栏切换效果
Aug 02 Javascript
捕获浏览器关闭、刷新事件不同情况下的处理方法
Jun 02 #Javascript
jQuery图片滚动图片的效果(另类实现)
Jun 02 #Javascript
JS操作select下拉框动态变动(创建/删除/获取)
Jun 02 #Javascript
jQuery实现单行文字间歇向上滚动源代码
Jun 02 #Javascript
js内存泄露的几种情况详细探讨
May 31 #Javascript
js判断鼠标同时离开两个div的思路及代码
May 31 #Javascript
Javacript实现颜色梯度变化和渐变的效果代码
May 31 #Javascript
You might like
ThinkPHP采用模块和操作分析
2011/04/18 PHP
PHP实现下载功能的代码
2012/09/29 PHP
php中spl_autoload详解
2014/10/17 PHP
学习php设计模式 php实现访问者模式(Visitor)
2015/12/07 PHP
PHP单例模式实例分析【防继承,防克隆操作】
2019/05/22 PHP
js控制框架刷新
2008/08/01 Javascript
jQuery autocomplete插件修改
2009/04/17 Javascript
jquery 1.3.2 IE8中的一点点的小问题解决方法
2009/07/10 Javascript
基于JQuery的多标签实现代码
2012/09/19 Javascript
jQuery中判断对象是否存在的方法汇总
2016/02/24 Javascript
jquery插件Jplayer使用方法简析
2016/04/22 Javascript
js实现上传文件添加和删除文件选择框
2016/10/24 Javascript
angular中实现控制器之间传递参数的方式
2017/04/24 Javascript
Angularjs2不同组件间的通信实例代码
2017/05/06 Javascript
使用ngrok+express解决本地环境中微信接口调试问题
2018/02/26 Javascript
webpack分离css单独打包的方法
2018/06/12 Javascript
javascript随机变色实例代码
2019/10/15 Javascript
解决已经安装requests,却依然提示No module named requests问题
2018/05/18 Python
python贪吃蛇游戏代码
2020/04/18 Python
使用Python通过oBIX协议访问Niagara数据的示例
2020/12/04 Python
浅析HTML5 meta viewport参数
2020/10/28 HTML / CSS
伦敦平价潮流珠宝首饰品牌:Astrid & Miyu
2016/10/10 全球购物
西班牙第一的网上药房:PromoFarma.com
2017/04/17 全球购物
Bogner美国官网:滑雪服中的”Dior”
2018/01/30 全球购物
网络事业创业计划书范文
2014/01/09 职场文书
《我为你骄傲》教学反思
2014/02/20 职场文书
2014年十一国庆向国旗敬礼寄语
2014/04/11 职场文书
小学优秀班集体申报材料
2014/05/25 职场文书
中职三好学生事迹材料
2014/08/24 职场文书
个人作风纪律整顿整改措施
2014/10/25 职场文书
画展邀请函
2015/01/31 职场文书
我的长征观后感
2015/06/09 职场文书
2016公务员年度考核评语
2015/12/01 职场文书
2016年庆“七一”主题党日活动总结
2016/04/05 职场文书
漫画「请问您今天要来点兔子吗?」最新杂志彩页公开
2022/03/24 日漫
彻底弄懂Python中的回调函数(callback)
2022/06/25 Python