DIV
<!--鍵盤輸入框-->
<div class="weui-cell weui-cell_active" id="js_cell"> <div class="weui-cell__hd"><label class="weui-label">車牌號碼</label></div> <div class="weui-cell__bd weui-flex" id="key"> <input id="car_no" class="weui-input" type="text" style="display: none"/> <div class="carLicenseMain"> <ul id="all"> <li class="active" id="c1"></li> <li id=“c2”></li> <li id=“c3”></li> <li id=“c4”></li> <li id=“c5”></li> <li id=“c6”></li> <li id=“c7”></li> <li class="xinnengyuan" id=“c8”></li> </ul> </div> </div> </div>
<!--鍵盤-->
<div id="keyboardBox"> <div class="provienceBox" id="provienceBox"> <div class="shutprovince" id="shut"><img src="../image//xiala.png" class="xiala"/></div> <ul> <li>京</li> <li>津</li> <li>渝</li> <li>滬</li> <li>冀</li> <li>晉</li> <li>遼</li> <li>吉</li> <li>黑</li> <li>蘇</li> </ul> <ul> <li>浙</li> <li>皖</li> <li>閩</li> <li>贛</li> <li>魯</li> <li>豫</li> <li>鄂</li> <li>湘</li> <li>粵</li> <li>瓊</li> </ul> <ul> <li>川</li> <li>貴</li> <li>雲</li> <li>陝</li> <li>甘</li> <li>青</li> <li>蒙</li> <li>桂</li> <li>寧</li> <li>新</li> </ul> <ul> <li class="changeContentBtn other">ABC</li> <li>藏</li> <li>使</li> <li>領</li> <li>警</li> <li>學</li> <li>港</li> <li>澳</li> <li class="deleteBtn other">刪除</li> </ul> </div> <div class="textBox" id="textBox"> <div class="shutprovince" id="shuta"><img src="../image//xiala.png" class="xiala"/></div> <ul> <li>1</li> <li>2</li> <li>3</li> <li>4</li> <li>5</li> <li>6</li> <li>7</li> <li>8</li> <li>9</li> <li>0</li> </ul> <ul> <li>Q</li> <li>W</li> <li>E</li> <li>R</li> <li>T</li> <li>Y</li> <li>U</li> <li>I</li> <li>O</li> <li>P</li> </ul> <ul> <li>A</li> <li>S</li> <li>D</li> <li>F</li> <li>G</li> <li>H</li> <li>J</li> <li>K</li> <li>L</li> </ul> <ul> <li class="changeContentBtn other">省份</li> <li>Z</li> <li>X</li> <li>C</li> <li>V</li> <li>B</li> <li>N</li> <li>M</li> <li class="deleteBtn other">刪除</li> </ul> </div> </div>
CSS
.shutprovince{ margin-bottom: 5px; height: 2.2rem; line-height: 1.9rem; text-align: right; padding: 0 0.6rem; font-size: 0.85rem; background-color: #f9f9f9; color: #333; border-bottom: 0.03rem solid #ddd; border-top: 0.01rem solid #eee; } .carLicenseMain{ width: 100%; /* height: 160px; */ display: flex; flex-direction: column; align-items: center; justify-content: center; } .carLicenseMain ul{ width: 100%; height: 36px; /* display: flex; */ flex-direction: row; align-items: center; justify-content: center; } .carLicenseMain ul li{ width: 22px; height: 40px; border: 1px solid #cccccc63; text-align: center; line-height: 40px; float: left; } .carLicenseMain ul li:last-of-type{ margin: 0; } .carLicenseMain ul li.active{ border: 2px solid #06ae5661; } .carLicenseMain ul li.xinnengyuan{ background: url(../image/jia.png) no-repeat center; background-size: 65% 50%; border: 2px dashed #CCCCCC; } .xiala{ width:7.5%; margin-top:7px; }
JS
$(document).ready(function() { var num1=""; var isclick= true; //鍵盤隱藏,點擊觸發顯示 $("#keyboardBox").hide() $(".carLicenseMain").on("click",function(){ $("#keyboardBox").show() }) //關閉事件-省份 $("#shut").on("click",function(){ $("#keyboardBox").hide() }) //關閉事件-數字 $("#shuta").on("click",function(){ $("#keyboardBox").hide() }) //鍵盤點擊動畫 $(".textBox ul li").each(function(){ $(this).click(function(){ $(this).addClass("activeKey")//添加動畫效果 $(this).siblings().removeClass("activeKey")//移除動畫效果 var interval=setTimeout(function(){//定時器及時清除自身動畫效果 $(this).removeClass("activeKey") window.clearInterval(interval) }.bind(this),200); }) }) var num = 6;//需要輸入的車牌數 //切換鍵盤 $('.changeContentBtn').click(function(){ $('li').siblings().removeClass("activeKey") if($(this).html()=='ABC'){ $('#textBox').show(); $('#provienceBox').hide(); }else{ $('#textBox').hide(); $('#provienceBox').show(); } }) //新能源點擊事件 $('.xinnengyuan').click(function(){ num = 7; var index = getIndex(); //alert(index); //console.log(isclick); //console.log( $('.carLicenseMain ul li.active').html($(self).html()).addClass('active')); // console.log(index+""+num); num1 = $("#car_no").val(); if(isclick) { isclick= false; if(num1.length == 7) { //console.log("這里d"); //$('.carLicenseMain ul li.active').html($(self).html()).addClass('active'); //判斷第八位數值是否為空,如果為空,點擊后綠色框不移到下一個框內 $('.carLicenseMain ul li.active').html($(self).html()).removeClass('active').next().addClass('active'); } // setTimeout(function(){ // isclick = true; // }, 60000); } //console.log(num1); //輸入車牌號不滿足七位數,無法輸入最后一位 //防止重復點擊,選中后禁止點擊 $(this).removeClass('xinnengyuan'); }) //獲取當前車牌數字索引 function getIndex(){ var index = 0; $('.carLicenseMain ul li').each(function(){ var reg = new RegExp('active'); if(reg.test($(this).attr('class'))){ //console.log(reg.test($(this).attr('class'))); index = $(this).index(); } }) return index; } //自定義鍵盤處理函數 function keyboard(num,self){ var index = getIndex(); //判斷輸入第一位為漢字 //alert(index); if(index == 0) { var str = self.innerText; //alert(str); var str1 = /^[\u4e00-\u9fa5]*$/.test(str); if(str1 == false) { $("#error_tip").show(); $("#error_tip").html("請輸入省份"); return false; } else { //alert(str); // document.getElementById('c1').innerText =str; $("#error_tip").hide(); } } if(index == 1) { var str = self.innerText; //alert(str); var str1 = /^[a-zA-Z]*$/.test(str); if(str1 == false) { $("#error_tip").show(); $("#error_tip").html("請輸入合法的英文標識"); return false; } else { $("#error_tip").hide(); } } console.log(index); if(index > 1) { var str = self.innerText; //alert(str); var str1 = /^[\u4e00-\u9fa5]*$/.test(str); if(str1) { $("#error_tip").show(); $("#error_tip").html("請輸入合法號碼"); return false; } else { $("#error_tip").hide(); } } var stra = self; //alert( $("#c1").innerText); a(index,stra); //console.log($("#c1").innerText+$("#c2").innerText) if(index<=num){ if(index == num){ //console.log($('.carLicenseMain ul li.active').html($(self).html())); $('.carLicenseMain ul li.active').html($(self).html()); }else{ // console.log($(self).html()); //console.log($('.carLicenseMain ul li.active').html($(self).html())); $('.carLicenseMain ul li.active').html($(self).html()).removeClass('active').next().addClass('active'); } $('#textBox').show(); $('#provienceBox').hide(); } } //為車牌號碼賦值 function a(index,self){ switch(index){ case 0: $("#car_no").val(self.innerText); break; case 1: var n1 = $("#car_no").val(); var n2 = n1 + self.innerText; $("#car_no").val(n2); break; case 2: //num3 = num2+self.innerText; var n1 = $("#car_no").val(); var n2 = n1 + self.innerText; $("#car_no").val(n2); break; case 3: var n1 = $("#car_no").val(); var n2 = n1 + self.innerText; $("#car_no").val(n2); break; case 4: var n1 = $("#car_no").val(); var n2 = n1 + self.innerText; $("#car_no").val(n2); break; case 5: var n1 = $("#car_no").val(); var n2 = n1 + self.innerText; $("#car_no").val(n2); break; case 6: //當index ==6時,取最后一次的值賦值 var n1 = $("#car_no").val(); if(n1.length ==7) { n1 = n1.substring(0, n1.length - 1); } var n2 = n1 + self.innerText; $("#car_no").val(n2); //$("#c7").innerHTML=self.innerText; break; case 7: var n1 = $("#car_no").val(); var n2 = n1 + self.innerText; $("#car_no").val(n2); //$("#c8").innerHTML=self.innerText; break; } // $("#car_no").val(num3); //console.log($("#car_no").val(num3)); // $("#car_no").val(car); //return c1+c2; } //省份鍵盤點擊事件 $('#provienceBox ul li:not(.other)').click(function(){ $(this).addClass("activeKey")//添加動畫效果 $(this).siblings().removeClass("activeKey")//移除動畫效果 var interval=setTimeout(function(){//定時器及時清除自身動畫效果 $(this).removeClass("activeKey") var self = this; keyboard(num,self); window.clearInterval(interval) }.bind(this),200); //省份點擊后鍵盤切換 //var self = this; //keyboard(num,self); }) //文本鍵盤點擊事件 $('#textBox ul li:not(.other)').click(function(){ var self = this; keyboard(num,self); }) //回退按鈕點擊事件 $('.deleteBtn').click(function(){ var index = getIndex(); //isclick = true; if(index == num){ if($('.carLicenseMain ul li.active').html() != ''){ $('.carLicenseMain ul li.active').html(''); //$('.carLicenseMain ul li:last-of-type').addClass('xinnengyuan'); }else{ if(index == 7){ $('.carLicenseMain ul li:last-of-type').addClass('xinnengyuan'); num = 6; } $('.carLicenseMain ul li.active').removeClass('active').prev().addClass('active').html(''); isclick = true; } }else if(index < num && index > 1){ $('.carLicenseMain ul li.active').removeClass('active').prev().addClass('active').html(''); }else if(index == 1){ $('.carLicenseMain ul li.active').removeClass('active').prev().addClass('active').html('省'); } //每點擊一次,car_no的長度減一 var carno = $("#car_no").val(); if(carno.length >0) { var delcarno = carno.substring(0, carno.length - 1); $("#car_no").val(delcarno); if(delcarno ==0) { $('#textBox').hide(); $('#provienceBox').show(); } } }) //提交按鈕點擊事件 $('#submitBtn').click(function(){ var carNum="" $(".carLicenseMain ul li").each(function(index){ carNum+=$(this).html() }) alert(carNum) }) })