Advertisement
Guest User

Untitled

a guest
Feb 25th, 2018
62
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
HTML 2.29 KB | None | 0 0
  1. <!DOCTYPE html>
  2. <html>
  3.   <head>
  4.     <meta charset="utf-8">
  5.     <title></title>
  6.     <style media="screen">
  7.     input[type='number'] {
  8.       appearance: textfield;
  9.     }
  10.  
  11.     input[type='number']::-webkit-inner-spin-button,
  12.     input[type='number']::-webkit-outer-spin-button,
  13.     input[type='number']:hover::-webkit-inner-spin-button,
  14.     input[type='number']:hover::-webkit-outer-spin-button {
  15.       -webkit-appearance: none;
  16.       margin: 0;
  17.     }
  18.     </style>
  19.   </head>
  20.   <body>
  21.     <form id="form">
  22.  
  23.     </form>
  24.   </body>
  25.   <script type="text/javascript">
  26.     const form = document.getElementById('form');
  27.     form.addEventListener('submit', (e) => {
  28.       e.preventDefault();
  29.  
  30.       let number = '';
  31.       const numbers = document.getElementsByTagName('input');
  32.  
  33.       for (let nr of numbers) {
  34.         number += nr.value;
  35.       }
  36.  
  37.       alert('Submitted ' + number);
  38.     });
  39.  
  40.     function buildForm() {
  41.       for (let i = 0; i < 4; i++) {
  42.        const numberInput = document.createElement('input');
  43.        numberInput.setAttribute('type', 'number');
  44.        numberInput.setAttribute('id', i);
  45.        numberInput.setAttribute('max', '9999');
  46.        numberInput.setAttribute('maxlength', '4');
  47.        numberInput.addEventListener('keydown', (e) => {
  48.           handleInput(e, i);
  49.         });
  50.         if (i === 0) {
  51.           numberInput.value = 3528;
  52.           numberInput.setAttribute('disabled', true);
  53.         }
  54.         form.appendChild(numberInput);
  55.       }
  56.       const submitBtn = document.createElement('button');
  57.       submitBtn.setAttribute('type', 'submit');
  58.       submitBtn.appendChild(document.createTextNode('Submit'));
  59.       form.appendChild(submitBtn);
  60.     }
  61.  
  62.     function handleInput(e, i) {
  63.       const input = document.getElementById(i);
  64.       if (e.keyCode !== 8 && input.value.length === 4) {
  65.        if (document.getElementById(i+1) !== null) {
  66.          document.getElementById(i+1).focus();
  67.         } else {
  68.           document.getElementsByTagName('button')[0].focus();
  69.         }
  70.       } else if (input.value.length > 4) {
  71.         input.value = input.value.slice(0, 4);
  72.       } else if (e.keyCode === 8 && input.value.length === 0) {
  73.        document.getElementById(i-1).focus();
  74.       }
  75.     }
  76.  
  77.     buildForm();
  78.   </script>
  79. </html>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement