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 相关文章推荐
javascript[js]获取url参数的代码
Oct 17 Javascript
让 JavaScript 轻松支持函数重载 (Part 2 - 实现)
Aug 04 Javascript
JavaScript Tips 使用DocumentFragment加快DOM渲染速度
Jun 28 Javascript
通过Javascript读取本地Excel文件内容的代码示例
Apr 08 Javascript
jQuery插件jFade实现鼠标经过的图片高亮其它变暗
Mar 14 Javascript
JS中使用apply方法通过不同数量的参数调用函数的方法
May 31 Javascript
基于jQuery实现仿微博发布框字数提示
Jul 27 Javascript
JavaScript动态数量的文件上传控件
Nov 18 Javascript
Vue2 配置 Axios api 接口调用文件的方法
Nov 13 Javascript
js 数组当前行添加数据方法详解
Jul 28 Javascript
JavaScript数组类型Array相关的属性与方法详解
Sep 08 Javascript
JavaScript利用html5新方法操作元素类名详解
Nov 27 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
php disk_free_space 返回目录可用空间
2010/05/10 PHP
php魔术方法功能与用法实例分析
2016/10/19 PHP
JavaScript 学习笔记(九)call和apply方法
2010/01/11 Javascript
关于jquery append() html时的小问题的解决方法
2010/12/16 Javascript
jquery 圆形旋转图片滚动切换效果
2011/01/19 Javascript
带左右箭头图片轮播的JS代码
2013/12/18 Javascript
Js实现滚动变色的文字效果
2014/06/16 Javascript
JS+CSS实现的拖动分页效果实例
2015/05/11 Javascript
jquery仿百度百科底部浮动导航特效
2015/08/08 Javascript
JQuery控制图片由中心点逐渐放大效果
2016/06/26 Javascript
详解jQuery简单的表格应用
2016/12/16 Javascript
angular2+nodejs实现图片上传功能
2017/03/27 NodeJs
详解从买域名到使用pm2部署node.js项目全过程
2018/03/07 Javascript
JavaScript基于对象方法实现数组去重及排序操作示例
2018/07/10 Javascript
基于js Canvas实现二次贝塞尔曲线
2018/12/25 Javascript
vue+vant-UI框架实现购物车的复选框全选和反选功能
2019/11/05 Javascript
使用uni-app开发微信小程序的实现
2019/12/13 Javascript
js实现贪吃蛇小游戏(加墙)
2020/07/31 Javascript
vue动态合并单元格并添加小计合计功能示例
2020/11/26 Vue.js
python 自定义对象的打印方法
2019/01/12 Python
Pycharm激活方法及详细教程(详细且实用)
2020/05/12 Python
Tensorflow中批量读取数据的案列分析及TFRecord文件的打包与读取
2020/06/30 Python
详解python中的异常捕获
2020/12/15 Python
使用CSS3的::selection改变选中文本颜色的方法
2015/09/29 HTML / CSS
加拿大百叶窗和窗帘定制网站:Blinds
2017/01/30 全球购物
CAT鞋加拿大官网:CAT Footwear加拿大
2020/08/05 全球购物
软件测试企业面试试卷
2016/07/13 面试题
工作表现评语
2014/01/19 职场文书
安全责任书范本
2014/04/15 职场文书
中学生演讲稿
2014/04/26 职场文书
信访工作汇报材料
2014/10/27 职场文书
2014年小学美术工作总结
2014/12/20 职场文书
付款承诺函范文
2015/01/21 职场文书
介绍信模板
2015/01/31 职场文书
社区元宵节活动总结
2015/02/06 职场文书
小学大队长竞选稿
2015/11/20 职场文书