手机
当前位置:查字典教程网 >编程开发 >Javascript教程 >js+css实现增加表单可用性之提示文字
js+css实现增加表单可用性之提示文字
摘要:平常设计表单的时候,我们会加入一些提示文字,比如说在搜索框里,我们会提示“请输入关键字”,并在搜索框得到焦点和失去焦点的时候适时的隐藏和显示...

平常设计表单的时候,我们会加入一些提示文字,比如说在搜索框里,我们会提示“请输入关键字”,并在搜索框得到焦点和失去焦点的时候适时的隐藏和显示,最常见的做法是利用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本身更单纯,而且提示文字和用户输入的文本在样式更容易控制,比如颜色的深浅,从而提高表单可用性。

【js+css实现增加表单可用性之提示文字】相关文章:

javascript实现树形菜单的方法

javascript实现可全选、反选及删除表格的方法

js实现鼠标划过给div加透明度的方法

javascript实现Table排序的方法

JS实现浏览器菜单命令

javascript基于DOM实现省市级联下拉框的方法

Javascript实现每日自动换一张图片的方法

原生javascript实现解析XML文档与字符串

js实现键盘Enter键提交表单的方法

javascript实现点击后变换按钮显示文字的方法

精品推荐
分类导航