項目有個需求就是在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 });
實現效果如下: