2015-09-23 85 views
3

我試圖建立一個動態的輸入框。當我點擊數字鍵盤時,我希望它顯示在框上,並將該框限制爲一個數字。當它達到極限時,下一個輸入將進入下一個框。動態輸入與js/jquery

我不希望用戶能夠點擊並在輸入框中手動輸入值,我只是希望他們使用數字鍵盤。輸入框是一個很好的解決方案嗎?

這裏是我的代碼:

https://jsfiddle.net/Piq9117/dwxt928c/

這個代碼把我所有的箱子點擊數。我該如何編寫它,以便在盒子中有一個數字時它會轉到另一個盒子?

$(function() { 
    var $passBox = $('input[type="text"]'); 
    var $numpad = $('.numpad'); 

    $numpad.on('click', function() { 
     var $numValue = $(this).text(); 
     $passBox.val($numValue); 
    }) 
}); 
+1

你能不能有屬性只讀? – guradio

+0

我只是一個小菜。我不知道這種巫術存在。大聲笑!謝謝!現在我明白了。 – ken

+0

快樂編碼,如果這回答你的問題勾選檢查,以便人們知道有一個答案爲未來的參考 – guradio

回答

1

讓你輸入字段爲只讀,然後替換下面的腳本,你會得到結果如你預期。

$(function() { 
    var $numpad = $('.numpad'); 
    var n=0; 
    $numpad.on('click', function() {   
     var $passBox = $('input[type="text"]:eq('+n+')');   
     n=n+1; 
     if(n>1) 
      n=0; 
     var $numValue = $(this).text(); 
     $passBox.val($numValue); 
    }); 
}); 

DEMO

5

DEMO

<div class="passcode"> 
    <div class="passcodeBox"> 
     <ul> 
      <li><input type="text" readonly></li> 
      <li><input type="text" readonly></li> 
      <li></li> 
      <li></li> 
      <li></li> 
     </ul> 
    </div> 
    <table> 
     <tbody> 
      <tr> 
       <td class="numpad">1</td> 
       <td class="numpad">2</td> 
       <td class="numpad">3</td> 
      </tr> 
      <tr> 
       <td class="numpad">4</td> 
       <td class="numpad">5</td> 
       <td class="numpad">6</td> 
      </tr> 
      <tr> 
       <td class="numpad">7</td> 
       <td class="numpad">8</td> 
       <td class="numpad">9</td> 
      </tr> 
      <tr> 
       <td></td> 
       <td class="numpad">0</td> 
      </tr> 
     </tbody> 
    </table> 
</div> 

添加ATTR readonly輸入

+0

你能否也請解決我的其他問題? – ken