1. 程式人生 > 程式設計 >JavaScript實現京東快遞單號查詢

JavaScript實現京東快遞單號查詢

JavaScript網頁製作–京東快遞單號查詢,供大家參考,具體內容如下

JavaScript實現京東快遞單號查詢

上篇講到了京東網頁的一個可能不被大多數人熟知的小功能,S鍵自動獲得焦點,相比於那個功能,這個快遞單號查詢的功能可能更明瞭一點,雖然我也覺得很雞肋。在網頁搜尋京東快遞單號查詢後,會出現這樣的一個功能,當你在快遞單號欄輸入快遞單號的時候,上方會出現一個較大的文字框,用較大的字型顯示出你輸入的快遞單號。(雖然我覺得字號也沒有差很多)

功能實現:

1、在輸入快遞單號的時候,上方出現一個盒子,這個盒子的字號更大。
2、表單檢測使用者輸入,新增鍵盤事件。
3、將輸入框快遞單號的值獲取給上方的盒子的innerText。
4、快遞單號裡面的value值為空時隱藏上方的盒子。

JavaScript實現京東快遞單號查詢

在沒有輸入的情況下,只顯示input框

JavaScript實現京東快遞單號查詢

在輸入快遞單號的時候,input框上方出現一個盒子,同步輸入的快遞單號。

程式實現:

<!DOCTYPE html>
<html lang="zh-CN">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width,initial-scale=1.0">
  <title>京東快遞單號查詢</title>
  <style>
    div {
      width: 170px;
      height: 30px;
      border: 1px solid black;
      font-size: 20px;
    }

  </style>
</head>
<body>
  <div style="display: none;"></div>
  <input type="text">
  <button >查詢</button>
  <script>
    var input = document.querySelector('input');
    var div = document.querySelector('div');
 //當input框獲得焦點時
    input.addEventListener('focus',function(){
      //如果input框中的內容不為空
      if(input.value != ''){
        //顯示div盒子
        div.style.display = 'block';
      }
      
      input.addEventListener('keyup',function(){
        //如果div內容為空 隱藏div
        if(input.value ===''){
        div.style.display = 'none';
        }else{
          //div內容不為空 顯示div
        div.style.display = 'block';
          //將input中的值賦給div
        div.innerText = input.value;
        }
      })
    })
    //當input框失去焦點時隱藏div
 input.addEventListener('blur',function(){
      div.style.display = 'none';
    })
  </script>
</body>
</html>

在程式監聽事件中不使用keydown / keypress的原因:

​ keydown / keypress在按下鍵盤時觸發,此時input框中沒有內容,按下後有了內容,但是並沒有再次觸發,而此時div盒子並不會彈出來,在下一次鍵盤按下時會彈出div盒子,盒子中會顯示第一次輸入的數字。因此在使用keydown / keypress時會出現資料不同步的現象。

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