最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

js仿支付寶多方框輸入支付密碼效果

 更新時間:2016年09月27日 14:48:00   作者:你腦子有bug  
這篇文章主要為大家詳細介紹了js仿支付寶多方框輸入支付密碼效果,具有一定的參考價值,感興趣的小伙伴們可以參考一下

上次看到別人說寫一個類似支付寶支付密碼的輸入框效果,今天就想自己寫了試試看,大體功能是實現(xiàn)了。

已實現(xiàn)部分:
1. 焦點會隨著輸入數值往后推移
2. 如果輸入的非0-9,則會出現(xiàn)提示
3. 按Backspance回車可以對應格子焦點往前推移
4. 按回車或者點擊按鈕可以觸發(fā)按鈕點擊事件,獲得輸入值

未完善部分:
1. 在控制輸入類型的時候,只有0-9、非0-9以及回車、回刪幾個鍵盤事件的區(qū)分,不夠完善
2. 輸入框用的input標簽,password類型,會將輸入值變成圓點,但是圓點太小不夠美觀,不知道如何改變圓點大小,考慮是否要畫個圓點遮蓋

ps:代碼不夠精簡,很多感覺還可以改進精簡。

效果圖:

代碼段:

**index.html 主要代碼**

<div class="content">
 <div class="title">支付寶支付密碼:</div>
 <div class="box"></div>
 <div class="forget">忘記密碼?</div>
 <div class="point">請輸入6位數字密碼</div>
 <button class="getPasswordBtn">一鍵獲取密碼</button>
 <div class="errorPoint">請輸入數字!</div>

</div>

**reset.css代碼**

*{
 padding: 0;
 margin: 0;
}
.content{
 width: 400px;
 height: 50px;
 margin: 0 auto;
 margin-top: 100px;

}
.title{
 font-family: '微軟雅黑';
 font-size: 16px;
}
.box{
 width: 190px;
 height: 30px;
 border:1px solid #ccc;
 margin-top: 10px;
 line-height: 30px;
}
.content .box,.forget{
 display: inline-block;
}
.content .forget{
 width: 100px;
 color:lightskyblue;
 vertical-align: super;
 font-size: 14px;
}
.box input.paw{
 width: 30px;
 height: 20px;
 line-height: 20px;
 margin-left: -9px;
 border:none;
 border-right: 1px dashed #ccc;
 text-align: center;
}
.box input.paw:nth-child(1){
 margin-left: 0;
}
.content .box .pawDiv:nth-child(6) input.paw{
 border: none;
}
.content .box input.paw:focus{outline:0;}
.content .box .pawDiv{
 display: inline-block;
 line-height: 30px;
 width: 31px;
 height: 31px;
 margin-top: -2px;
 float: left;
}
.point{
 font-size: 14px;
 color: #ccc;
 margin: 5px 0;
}
.errorPoint{
 color: red;
 display: none;
}
.getPasswordBtn{
 width: 100px;
 height: 30px;
 background-color: cornflowerblue;
 font-size: 14px;
 font-family: '微軟雅黑';
 color: white;
 border: none;
}

**main.js代碼**

/*動態(tài)生成*/
var box=document.getElementsByClassName("box")[0];
function createDIV(num){
 for(var i=0;i<num;i++){
  var pawDiv=document.createElement("div");
  pawDiv.className="pawDiv";
  box.appendChild(pawDiv);
  var paw=document.createElement("input");
  paw.type="password";
  paw.className="paw";
  paw.maxLength="1";
  paw.readOnly="readonly";
  pawDiv.appendChild(paw);
 }
}
createDIV(6);



var pawDiv=document.getElementsByClassName("pawDiv");
var paw=document.getElementsByClassName("paw");
var pawDivCount=pawDiv.length;
/*設置第一個輸入框默認選中*/
pawDiv[0].setAttribute("style","border: 2px solid deepskyblue;");
paw[0].readOnly=false;
paw[0].focus();

var errorPoint=document.getElementsByClassName("errorPoint")[0];
/*綁定pawDiv點擊事件*/

function func(){
 for(var i=0;i<pawDivCount;i++){
  pawDiv[i].addEventListener("click",function(){
   pawDivClick(this);
  });
  paw[i].onkeyup=function(event){
   console.log(event.keyCode);
   if(event.keyCode>=48&&event.keyCode<=57){
    /*輸入0-9*/
    changeDiv();
    errorPoint.style.display="none";

   }else if(event.keyCode=="8") {
    /*退格回刪事件*/
    firstDiv();

   }else if(event.keyCode=="13"){
    /*回車事件*/
    getPassword();

   }else{
    /*輸入非0-9*/
    errorPoint.style.display="block";
    this.value="";
   }

  };
 }

}
func();


/*定義pawDiv點擊事件*/
var pawDivClick=function(e){
 for(var i=0;i<pawDivCount;i++){
  pawDiv[i].setAttribute("style","border:none");
 }
 e.setAttribute("style","border: 2px solid deepskyblue;");
};


/*定義自動選中下一個輸入框事件*/
var changeDiv=function(){
 for(var i=0;i<pawDivCount;i++){
  if(paw[i].value.length=="1"){
   /*處理當前輸入框*/
   paw[i].blur();

   /*處理上一個輸入框*/
   paw[i+1].focus();
   paw[i+1].readOnly=false;
   pawDivClick(pawDiv[i+1]);
  }
 }
};

/*回刪時選中上一個輸入框事件*/
var firstDiv=function(){
 for(var i=0;i<pawDivCount;i++){
  console.log(i);
  if(paw[i].value.length=="0"){
   /*處理當前輸入框*/
   console.log(i);
   paw[i].blur();

   /*處理上一個輸入框*/
   paw[i-1].focus();
   paw[i-1].readOnly=false;
   paw[i-1].value="";
   pawDivClick(pawDiv[i-1]);
   break;
  }
 }
};



/*獲取輸入密碼*/
var getPassword=function(){
 var n="";
 for(var i=0;i<pawDivCount;i++){
  n+=paw[i].value;
 }
 alert(n);
};
var getPasswordBtn=document.getElementsByClassName("getPasswordBtn")[0];

getPasswordBtn.addEventListener("click",getPassword);

/*鍵盤事件*/
document.onkeyup=function(event){
 if(event.keyCode=="13") {
  /*回車事件*/
  getPassword();
 }
};

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • 用js的for循環(huán)獲取radio選中的值

    用js的for循環(huán)獲取radio選中的值

    獲取radio選中值的方法有很多,在本文為大家介紹的是使用for循環(huán)來實現(xiàn),具體的實現(xiàn)如下,感興趣的朋友可以參考下
    2013-10-10
  • 深入探究JavaScript的類型判斷(從基礎到精通)

    深入探究JavaScript的類型判斷(從基礎到精通)

    JavaScript 語言具有多種數據類型,它們可以大致分為兩大類:基本數據類型(Primitive Data Types)和引用數據類型(Reference Data Types),本文將帶大家一起從基礎到精通深入探究JavaScript的類型判斷,需要的朋友可以參考下
    2024-05-05
  • Javascript實現(xiàn)鼠標右鍵特色菜單

    Javascript實現(xiàn)鼠標右鍵特色菜單

    鼠標右鍵大家都經常操作,但是鼠標的內容是不是符合大家的“口味”?這篇文章就是教大家如何定制自己專屬鼠標右鍵,需要的朋友可以參考下
    2015-08-08
  • 如何實現(xiàn)JavaScript動態(tài)加載CSS和JS文件

    如何實現(xiàn)JavaScript動態(tài)加載CSS和JS文件

    這篇文章主要為大家詳細介紹了JavaScript動態(tài)加載CSS和JS文件,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2015-10-10
  • 詳解JS HTML Web端使用MQTT通訊測試

    詳解JS HTML Web端使用MQTT通訊測試

    這篇文章主要介紹了JS HTML Web端使用MQTT通訊測試,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-04-04
  • javascript實現(xiàn)前端input密碼輸入強度驗證

    javascript實現(xiàn)前端input密碼輸入強度驗證

    這篇文章主要為大家詳細介紹了javascript實現(xiàn)前端input密碼輸入強度驗證,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-06-06
  • JS實現(xiàn)電腦虛擬鍵盤打字測試

    JS實現(xiàn)電腦虛擬鍵盤打字測試

    這篇文章主要為大家詳細介紹了JS實現(xiàn)電腦虛擬鍵盤打字測試,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-06-06
  • javascript操作數組詳解

    javascript操作數組詳解

    這篇文章主要詳細介紹了javascript操作數組的方法以及示例,需要的朋友可以參考下
    2014-12-12
  • 淺析return false的正確使用

    淺析return false的正確使用

    “return false”之所以被誤用的如此厲害,是因為它看起來像是完成了我們交給它的工作,瀏覽器不會再將我們重定向到href中的鏈接,表單也不會被繼續(xù)提交,但這么做到底有什么不對呢
    2013-11-11
  • layui彈出層按鈕提交iframe表單的方法

    layui彈出層按鈕提交iframe表單的方法

    今天小編就為大家分享一篇layui彈出層按鈕提交iframe表單的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-08-08

最新評論

泰州市| 阿拉善盟| 乌拉特后旗| 宁波市| 昭苏县| 体育| 白水县| 思南县| 沙田区| 宁化县| 开远市| 乐昌市| 那坡县| 同德县| 凉城县| 稷山县| 普洱| 平湖市| 慈溪市| 兰溪市| 怀仁县| 苗栗市| 泽州县| 汉沽区| 获嘉县| 柳河县| 府谷县| 通州区| 平原县| 屯留县| 兴隆县| 同德县| 昆明市| 余庆县| 治多县| 迁安市| 吉木乃县| 邹城市| 苍溪县| 射洪县| 叙永县|