源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

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

  • 时间:2021-11-08 04:13 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:js+css实现增加表单可用性之提示文字
平常设计表单的时候,我们会加入一些提示文字,比如说在搜索框里,我们会提示“请输入关键字”,并在搜索框得到焦点和失去焦点的时候适时的隐藏和显示,最常见的做法是利用value来设置:
[u]复制代码[/u] 代码如下:
<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来实现更好的方式:
[u]复制代码[/u] 代码如下:
<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本身更单纯,而且提示文字和用户输入的文本在样式更容易控制,比如颜色的深浅,从而提高表单可用性。
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部