有个需求是:输入框有文本的时候就显示清除按钮,没有文本则隐藏清除按钮,点击清除按钮不能影响键盘弹出的状态。

网上有css实现自动显示和隐藏清除按钮的方案,但是考虑到兼容性,我们还是使用js来实现。

 

css


body{
             background: #eee;
         }
         form{
             margin: 30px 0;
             position: relative;
         }
         #keyword{
             height: 90px;
             font-size: 60px;
             line-height: 90px;
             width: 300px;
         }
         #clear{
             color: red;
             width: 90px;
             height: 90px;
             line-height: 90px;
             text-align: center;
             position: absolute;
             top: 0;
             left: 210px;
             visibility:hidden;
         }


html


<form =\"return false;\" >
     <input type=\"button\" id=\"clear\" value=\"clear\">
     <input type=\"search\" id=\"keyword\">
</form>


js


var keyword = document.getElementById(\'keyword\'),
         clear=document.getElementById(\'clear\'),
         autoShow=function () {
         clear.style.display=keyword.value.length>0?\'block\':\'none\';
         clear.style.visibility=keyword.value.length>0?\'visible\':\'hidden\';
     };

    keyword.oninput=autoShow;
  

    clear. =function (e) {
         keyword.value = \'\';
         autoShow();
         keyword.focus();
         e.preventDefault();
         e.stopPropagation();
         return false;
     };


收藏 打印