2015-09-23 87 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