如何在移動web模仿客戶端給input輸入框添加自定義清除按鈕


項目有個需求就是在input輸入框添加清除按鈕,網上查找資料加上自己琢磨終於弄出來了。

靈感來自於 http://www.zhangxinxu.com/wordpress/?p=4077

由於項目已經上線給為了減少改動就改為通過js全局控制的方式,就不改html了。

css部分:

 1 /*輸入框清除按鈕*/
 2 .iss-close{
 3     position: absolute;
 4     top: 0;
 5     color: #ccc!important;
 6     display: none;
 7     cursor: pointer;
 8     z-index: 9999;
 9 }
10 input:valid + .iss-close {
11     display: inline-block;
12 }
13 .iss-close-hide{
14     display: none!important;
15 }

 

js部分:

 1 //統一添加清除按鈕和清除按鈕事件處理
 2 $("input").attr("required","required");
 3 $("input[type=file],input[type=reset],input[type=submit],input[type=password],input[type=image],input[type=radio],input[type=checkbox],input[type=hidden],input[type=button],input[type=date],input[type=month],input[types=date],input[types=month],input.iss-search,input[readonly],input[disabled]").removeAttr("required");
 4 setTimeout(function(){
 5     $("input[required]").each(function(){
 6         $(this).after('<a class="iss-close">'+
 7             '<i class="issfont iss-icon-font-round-close-fill"></i>'+
 8             '</a>').next().css({"right":$(this).parent().css("paddingRight"),"marginRight":"-10px"})
 9     });
10 },1000);
11 
12 //模擬ios客戶端獲取焦點時顯示清除按鈕,離開焦點隱藏清除按鈕
13 $("input[required]").focus(function(){
14     $(this).next(".iss-close").removeClass("iss-close-hide")
15 }).blur(function(){
16     $(this).next(".iss-close").addClass("iss-close-hide")
17 });
18 
19 //點擊清除按鈕
20 $(".iss-close").live("tap",function(e){
21     e.preventDefault();
22     e.stopPropagation();
23     $(this).prev("input").val("");
24 });

 

實現效果如下:  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM